차이점

이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.

차이 보기로 연결

정규표현식 [2010-10-14 03:17]
lifthrasiir
정규표현식 [2011-05-30 18:25] (현재)
줄 8: 줄 8:
   * [[펄]] 정규 표현식 및 [[PCRE|펄 호환 정규 표현식]](PCRE)   * [[펄]] 정규 표현식 및 [[PCRE|펄 호환 정규 표현식]](PCRE)
  
-두 줄기는 기본 철학이 매우 다른데, 전자는 성능을 위하여 표현력을 많이 희생했으며, 후자는 표현력을 극대화시키기 위해서 성능을 다소 희생한 면이 있다. 실제로 펄 정규식은 [[NP-완전]]하며(([[http://perl.plover.com/NPC/NPC-3SAT.html|Reduction of 3-CNF-SAT to Perl Regular Expression Matching]]. 심심하면 펄 정규식으로 [[소수]]를 체크한다거나 [[문맥의존문법]]을 구현해 보시라.)) 모든 경우에서 최적으로 돌아가도록 구현하는 건 거의 불가능에 가깝다. (그래서 가장 많이 사용되는 경우에 대해서만 최적화하고 있다...)+두 줄기는 기본 철학이 매우 다른데, 전자는 성능을 위하여 표현력을 많이 희생했으며, 후자는 표현력을 극대화시키기 위해서 성능을 다소 희생한 면이 있다. 실제로 펄 정규식은 [[NP-난해]]하며(([[http://perl.plover.com/NPC/|Perl Regular Expression Matching is NP-Hard]]. 심심하면 펄 정규식으로 [[소수]]를 체크한다거나 [[문맥의존문법]]을 구현해 보시라.)) 모든 경우에서 최적으로 돌아가도록 구현하는 건 거의 불가능에 가깝다. (그래서 가장 많이 사용되는 경우에 대해서만 최적화하고 있다...)
  
 ===== 문법 ===== ===== 문법 =====
줄 22: 줄 22:
  
 펄 호환 정규 표현식에서는 ''()'' 괄호 문법의 맨 첫 문자로 대부분의 메타 문자가 올 수 없음을 악용(?)하여, ''(?...)'' 꼴의 문법을 특수한 목적(조건 체크, 임의의 코드 삽입, 설정 변경 등등)으로 사용한다. 펄 5.10 이후로는 명령형으로 사용되는 ''(*...)'' 꼴의 문법도 사용한다. 펄 호환 정규 표현식에서는 ''()'' 괄호 문법의 맨 첫 문자로 대부분의 메타 문자가 올 수 없음을 악용(?)하여, ''(?...)'' 꼴의 문법을 특수한 목적(조건 체크, 임의의 코드 삽입, 설정 변경 등등)으로 사용한다. 펄 5.10 이후로는 명령형으로 사용되는 ''(*...)'' 꼴의 문법도 사용한다.
- 
-===== Headline ===== 
- 
- 
  

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기