본문 바로가기
개발/PHP

PHP PCRE 정규표현식 ^

by 언제나초심. 2013. 7. 7.
반응형

* php preg_ 함수 관련의 정규식 메모 입니다. 

PCRE 정규표현식인데, perl 과 관련된 표현식인 것 같다.

posix 표현식도 있다는데, 잘은 모르겠음..





1. ^ 맨처음

문자열의 맨처음... 이었구나...


^[a-z] 는 처음부터 알파벳...


/^[a-z]/ 이런식으로 쓰는듯.



2. $  맨마지막

/[a-z]$/ 이런식인듯..


3. . 점. 아무 문자나 하나 



4. ? 바로 앞에 문자가 없거나 하나만 있거나

https? 이렇게 하면, http 하고 https 둘다 포함이 됨.

jpe?g 이렇게 하면 jpg 하고 jpeg 둘다 됨.



5. 정규식에 해당되는 것을 문자화 시킬 때에 \역슬래쉬 표시해줌.


6. * 바로 앞의 문자나 문자열이 없거나 하나 이상 있어도 됨.


7. + 바로 앞의 문자나 문자열이 하나 이상 있다. 를 뜻함.




중간 정리. 

^ 시작 문자 

$ 종결 문자


시작문자나 종결문자가 없다면, 중간이든 어디든 상관 없다는 말이고,

시작문자AC 이런식이면 AC 로 시작이 되어야 한다는 말이고,

AC종결문자 이런식이면 AC 로 끝이 나야 한다는 말이다. 



a?   : a가 없거나, 하나만 있거나. 

a*   : a가 없거나, 많거나.

a+   : a가 하나 있거나, 많거나.


? 이나 * 은 해당문자가 없어도 됨. + 문자는 하나는 최소 있어야 함.




8. {} 중괄호는 몇개 반복되냐 갯수 정하는 거

? * + 에서 좀더 세밀한 확장이라고 보면 될 듯. 

a{2}  : aa

a{2,4} : aa 또는 aaa 또는 aaaa

a{2,} : aa 또는 aaaaa~~~



9. [] 대괄호

[abc] : a 또는 b 또는 c

a[bc] : ab 또는 ac


10. 대괄호 응용1

[abc]?

[abc]*

[abc]+ 

요런식도 가능하다.


11. [^ ]대괄호 반전

[^abc] : a~c 가 아닌 문자.


12. [] 안에서는 ^ 나 - 를 제외하고는 다 문자취급.



13. aa|bb 또는

aa|bb : aa 또는 bb


14. /~~~/i 대소문자 상관없이



13. /~~~/s 개행문자 관련

. 점 메타문자를 확장해서 개행문자까지 포함시켜서 찾게 함.

반응형