전체 페이지뷰

2016년 12월 6일 화요일

Regular expression with Python, Optimization Recommendations

지금까지 긴 시간동안 파이썬 정규표현식에 대해 살펴보았습니다.

이제 정규식을 최적으로 사용하기 위한 권장 사항을 가볍게 살펴보고 마칠까 합니다.



Optimization Recommendations


1. 컴파일된 패턴을 재사용하라.

패턴을 컴파일 하면 RegexObject가 생겨납니다.  시간과 리소스 절약을 위해 재사용합니다.

2. Alternation 시에는 공통 부분을 추출하라

>>> pattern = re.compile(r'/(Hello\sWorld|Hello\sContinent|Hello\sCountry)')
가 아니라
>>> pattern = re.compile(r'/Hello\s(World|Continent|Country)')
로 표현합니다

3. Alternation시에는 지름길을 사용하라.

더 많이 쓰일 것 같은 표현을 앞에 둡니다. 예를 들어 차의 색깔데이터라면 다른색보다 흰색, 검은색이 많이 나올 것입니다. 이 경우,
>>> pattern = re.compile(r'(white|black|red|blue|green)') 가
>>> pattern = re.compile(r'(green|blue|red|black|white)'
보다 적당합니다.

4. Non-capturing group을 적절히 사용하라

결과 내용물을 얻을 필요가 없는 경우에는 non-capturing 그룹을 사용합니다.

5. 패턴을 최대한 특정하라

매치하고자 하는 패턴을 가능한 자세하게 서술해 줍니다.

6. Don't be greedy

수량제한자(quntifier)는 기본적으로 greedy합니다. 그 경우는 연산마다 많은 숫자의 리터럴을 조사해야 하므로 필요한 경우가 아니라면 greedy 방식을 사용하지 않도록 합니다.

댓글 없음:

댓글 쓰기