[산이]님이 남기신 글:
[Perl] 패턴 매칭-정규 표현식
http://www.comdic.net/webmaster/perl/perl_5.html
정규 표현식(regular expression)
다음은 regular expression에서 사용되는 기호들의 의미를 정리한
표이다. Perl에서의 pattern matching은 regular expression을 사용할 수
있다.
.
newline을 제외한 임의의 한 글자
[a-z0-9]
a-z까지의 영문자와 숫자 중의 한 글자
[^a-z0-9]
a-z까지의 영문자와 숫자가 아닌 한 글자
\a
Alarm, beep
\d
10진수 정수 한 글자, [0-9]
\D
10진수 정수가 아닌 한 글자, [^0-9]
\w
영문자 또는 숫자, _(underline) 중의 한 글자, [a-zA-Z0-9_]
\W
\w가 아닌 한 글자, [^a-zA-Z0-9_]
\s
공백문자(whitespace)
한 글자 (space, tab, newline ...)
\S
\s가 아닌 한 글자
\n
newline
\r
carriage return
\t
tab
\f
formfeed
\b
[]내부에서 사용될 경우 backspace
\0, \000
null character
\nnn
nnn이라는 8진수의 값을 가지는 ASCII 한 글자
\xnn
nn이라는 16진수의 값을 가지는 ASCII 한 글자
\cX
Ctrl+X에 해당하는 한 글자
\metachar
\|, \*, \\, \(, \), \[, \{, \^, \$, \+, \?, \.와 같이 표현되며 |, *, \, (,
), [, {, ^, $, +, ?, .의 의미를 가지는 한 글자
(abc)
뒤에 가서 참조될(backreference)
abc라는 문자열
\1
첫 번째 참조 문자열, open parenthesis, '('에 의해 순서가 결정됨
\2
두 번째 참조 문자열
\n
n번째 참조 문자열, 10이상일 경우 backreference될 문자열이
없으면, 8진수 값의 ASCII 한 글자의 의미를 가질 수 있다.
x?
x가 나오지 않거나 1번 나오는 경우
x*
x가 0번 이상 반복되는 문자열
x+
x가 1번 이상 반복되는 문자열
x{m,n}
x가 m번 이상, n번 미만으로 나오는 문자열
x{m,}
x가 m번 이상 나오는 문자열
x{m}
x가 m번 나오는 문자열
abc
a와 b와 c가 연속으로 붙어서 나오는 문자열
abc|def|ghi
문자열 abc, def, ghi 중의 하나에 해당되는 경우
다음은 크기가 없는, 지정된 위치가 일치하도록 제시할 수
있는
위치 표시 조건(assertion)들을
나열한 표이다.
\b
[]바깥에서 \w와 \W가 서로 바뀌고 있는 word boundary를 의미함
\B
\b가 아닌 경우
\A
string의 처음 위치
\Z
string의 마지막 위치
\G
마지막으로 m//g에 의해 match가 된 위치
^
string의 가장 처음 위치 표시로 /m modifier가 있으면 line의 처음을
의미한다.
$
string의 가장 마지막 위치 표시로 /m modifier가 있으면 line의 끝을
의미한다.
(?=...)
...위치에 놓일 문자열이 매치 된다는 조건
(?!...)
...위치에 놓일 문자열이 매치 되지 않는다는 조건
|