차이점

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

차이 보기로 연결

정규표현식 [2010-10-14 03:14]
lifthrasiir 새로 만듦
정규표현식 [2011-05-30 18:25] (현재)
줄 1: 줄 1:
 ====== 정규 표현식 ====== ====== 정규 표현식 ======
  
-Regular expression. **정규식**이라고도 부른다. "정규 표현식"이라는 말은 여러 의미로 쓰이지만 공통적으로 특정한 [[문자열]] [[집합]]을 표현하는 간결한 수단을 가리키며, 이름에서 알 수 있듯 본래는 이 집합이 [[정규문법]]으로 제한되었으나 지금은 별로 그런 제약은 없다.+Regular expression. **정규식**이라고도 부른다. "정규 표현식"이라는 말은 여러 의미로 쓰이지만 공통적으로 특정한 [[문자열]] [[집합]]을 표현하는 간결한 수단을 가리키며, 이름에서 알 수 있듯 본래는 이 집합이 [[정규문법]]으로 제한되었으나 지금은 별로 그런 제약은 없다. 문자열 처리에 널리 쓰이며 매우 유용하기 때문에 요즘의 거의 모든 [[프로그래밍언어]]는 정규식을 어떤 형태로든 지원하는 게 보통이다.
  
 정규 표현식은 구현체에 따라 그 문법이나 기능에 있어 큰 차이가 있는데, 그 중에서 가장 큰 줄기는 다음과 같다. 정규 표현식은 구현체에 따라 그 문법이나 기능에 있어 큰 차이가 있는데, 그 중에서 가장 큰 줄기는 다음과 같다.
  
   * [[POSIX]] 기본 정규 표현식(BRE) 및 확장 정규 표현식(ERE)   * [[POSIX]] 기본 정규 표현식(BRE) 및 확장 정규 표현식(ERE)
-  * [[펄]] 호환 정규 표현식(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]]. 심심하면 펄 정규식으로 [[소수]]를 체크한다거나 [[문맥의존문법]]을 구현해 보시라.)) 모든 경우에서 최적으로 돌아가도록 구현하는 건 거의 불가능에 가깝다. (그래서 가장 많이 사용되는 경우에 대해서만 최적화하고 있다...)
  
 ===== 문법 ===== ===== 문법 =====

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