본문 바로가기

dev

[php] 정규식 정리

반응형

PHP 정규식 정리


^ (caret) : 라인의 처음이나 문자열의 처음을 표시한다.
^aaa : 문자열의 처음에 aaa 를 포함하면 참, 그렇지 않으면 거짓

$ (dollar) : 라인의 끝이나 문자열의 끝을 표시한다.
aaa$ : 문자열의 끝에 aaa 를 포함하면 참, 그렇지 않으면 거짓

. (period) : 임의의 한 문자를 표시
^a.c : 문자열의 처음에 abc, adc, aXc 등을 포함하면 참, aa 는 거짓
a..b$ : 문자열의 끝에 aaab, aZXb, aCxb 등을 포함하면 참

[] (bracket) : 문자의 집합이나 범위를 나타냄, 두 문자 사이의 "-" 는 범위를 나타냄
[] 내에서 "^" 이 선행되면 not 를 나타냄
이외에도 "문자클래스" 를 포함하는 [:문자클래스:] 의 형태가 있다. (문자클래스에서는 alpha, blank, cntrl, digit, graph, lower, print, space, upper, xdigit 가 있다.)
 
{} (brace) : {} 내의 숫자는 직전의 선행문자가 나타나는 횟수 또는 범위를 나타낸다.
a{3} : 'a' 의 3번 반복인 aaa 만 해당됨.
a{3,} : 'a' 가 3번 이상 반복인 aaa, aaaa, aaaaa, ... 등을 나타냄
a{3,5} : 'a'가 3번이상 5번 이하 반복인 aaa,aaaa,aaaaa 만 해당됨
ab{2,3} : abb 와 abbb만 해당됨
[0-9]{2} : 두 자리 숫자
doc[7-9]{2} : doc77, doc87, doc97 등이 해당
[^Zz]{5} : Z와 z를 포함하지 않는 5개의 문자열, abcde, ttttt 등이 해당
.{3,4}er : 'er' 앞에 세개 또는 네개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당

* (asterisk) : '*' 직전의 선행문자가 0번 또는 여러번 나타나는 문자열
ab*c : 'b'를 0번 또는 여러번 포함하므로 ac, ackdddd, abc, abbc, abbbbbbbc 등
* : 선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열은 안됨
.* : 선행문자가 '.' 이므로 하나 이상의 문자를 포함하는 문자열, 공백 문자열은 안됨
ab* : 'b'를 0번 또는 여러번 포함하므로 a, accc, abb, abbbbbbb 등
a* : 'a'를 0번 또는 여러번 포함하므로 k, kdd, sdfrrt, a, aaaa, abb, 공백문자열 등
doc[7-9]* : doc7, doc777, doc778989, doc 등이 해당
[A-Z].* : 대문자로만 이루어진 문자열
like.* : 직전의 선행문자가 '.'이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이 됨, like, likely, liker, likelihood 등

? : '?' 직전의 선행문자가 0번 또는 1번 나타나는 문자열
ab?c : 'b'를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨

() (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용

| (bar) : or를 나타냄
a|b|c : a, b, c 중 하나, 즉 [a-c]와 동일함
yes|Yes : yes나 Yes 중 하나, [yY]es와 동일함
korea|japan|chinese : korea, japan, chinese 중 하나

\ (backslash) : 위에서 사용된 특수 문자들을 정규식내에서 문자를 취급하고 싶을 때 '\'를 선행시켜서 사용
filename\.ext ("filename.ext"를 나타냄)
[\?\[\\\]] : '?', '[', '\', ']' 중 하나


반응형