Tuesday, December 25, 2012

Perl의 Regular Expression에 쓰이는 special characters

.  # Any single character except a newline
^  # The beginning of the line or string
$  # The end of the line or string
*  # Zero or more of the last character
+  # One or more of the last character
?  # Zero or one of the last character

t.e   # the, tae 같은 것들. te 나 take 같은 건 해당되지 않음 (.는 한글자이기 때문)
^f   # f가 라인 첫머리에 오는 것. fate 같은 것들
^fine  # fine 이 라인 첫머리에 오는 것. "fine, thank you. and you?" 같은 것들
e$   # e가 라인 맨끝에 오는 것. tone, rhode 같은 것들
ade$  # ade가 라인 맨끝에 오는 것. ade, made 같은 것들
old*  # ol 뒤에 d가 0개 이상 오는 것. ol, old, oldd, olddd 같은 것들
.*   # 개행이 없는 모든 스트링 (왜냐하면 .는 newline 캐릭터가 아닌 모든 글자이고 *는 0개 이상이므로)
^$   # 빈 라인. 시작(^) 뒤에 바로 끝($)이 오므로.

[aeiou]   # 영소문자 모음들.
[^aeiou]   # 영소문자 모음이 아닌 것들
[a-z]     # 영소문자. a~z 까지의 아무 글자
[^a-z]    # 영소문자가 아닌 글자
[a-zA-Z]   # 아무 알파벳 글자
[a-z]+    # 영소문자 한개 이상으로 이루어진 스트링

money|fame   # money 또는 fame
(mega|giga)death # megadeath 또는 gigadeath
(la)+      # la 또는 lala 또는 lalala...

\n  # 개행문자. A newline
\t  # 탭. A tab
\w  # Any alphanumeric (word) character. [a-zA-Z0-9_] 와 같음.
\W  # Any non-word character. [^a-zA-Z0-9_] 와 같음.
\d  # 숫자. [0-9] 과 동일
\D  # 숫자가 아닌 것. [^0-9] 과 동일.
\s  # 공백문자. Any whitespace character: space, tab, newline, etc
\S  # 공백문자가 아닌것. Any non-whitespace character
\b  # A word boundary, outside [] only
\B  # No word boundary

\|  # Vertical bar
\[  # An open square bracket
\)  # A closing parenthesis
\*  # An asterisk
\^  # A carat symbol
\/  # A slash
\\  # A backslash

활용예제
[01]       # "0" 또는 "1"
\/0        # "/0"
\/\s0       # "/ 0" 같은 것들. 중간의 스페이스는 tab 등의 다른 whitespace 가 될 수 있음
\/\s*0       # "/ 0" 처럼 whitespace 가 많이 올 수 있고 "/0" 처럼 없을 수도 있음
\/\s*0\.0*     # "/ 0.0", "/ 0.0000", "/0." 같은 것들.

레퍼런스 : String matching

No comments:

Post a Comment