후방탐색 기능은 다른 정규표현식과 달리 왼쪽과 오른쪽을 왕복하는 검사 방식 때문에 자원 소모가 많다.
데이터 분석이 쉬워지는 정규표현식(195p) |
[root@Centos7 ~]# time grep -ciP "(?<=mozilla).*" apache.log230042
real 0m0.995suser 0m0.960ssys 0m0.035s[root@Centos7 ~]# time grep -ciP "mozilla\K.*" apache.log230042
real 0m0.190suser 0m0.169ssys 0m0.021s
\K는 후방탐색과 달리 오른쪽으로만 검사를 진행하기 때문에 검사 결과가 달라질 수 있음에 주의.
VIM은 \K 대신 \zs
비교해보면 알 수 있지만 \zs(tart)가 훨씬 빠르다. 참고로 vim은 전방탐색을 대체할 수 있는 메타문자 \ze(nd)도 제공하는데 역시 빠르다. 검사 방식은 같을 거 같은데 희한하네 구문도 간단해서 앞으로 애용해야겠음. 이 좋은 걸 이제 알다니(..)
댓글 없음:
댓글 쓰기