보안세상

PHP정규표현식 본문

공부

PHP정규표현식

똔민 2015. 6. 24. 00:12
반응형

1) eregi 함수


eregi("검사할문자", "검사대상문자열");

 

- 검사대상문자열에 검사할 문자가 있으면 TRUE(1),
  검사대상문자열에 검사할 문자가 없으면 FALSE(null) 가 결과로 나오게 된다
- ereg함수는 대소문자 구별을하며 eregi함수는 대소문자 구별을 하지 않는다

 

ex)
<?
$str = "a";

echo eregi($str, "abcd"); // TRUE
echo eregi($str, "ABCD"); // TRUE
echo eregi($str, "wxyz"); // FALSE

echo ereg($str, "abcd"); // TRUE
echo ereg($str, "ABCD"); // FALSE
echo ereg($str, "wxyz"); // FALSE
?>

 

2) 정규표현식 ^ / $ / . / * / + / ?

 

연산자

설명

^

 문자열의 시작을 의미

$

 문자열의 끝을 의미

.

 임의의 한 문자

*

 바로 앞의 문자가 없거나 하나 이상

+

 바로 앞의 문자가 하나이상

?

 바로 앞의 한 문자가 없거나 있음

 

ex) 
^a      ==> a로 시작하는 모든 문자열 (a, ab, abc, abcd, ....)
a$      ==> a로 끝나는 모든 문자열 (a, ba, cba, ....)
a.b     ==> a와 b사이에 한 문자가 있는 문자열 (acb, zajb, aaibl, ....)
a*      ==> a가 없거나 하나 이상 (모두참)
a*b    ==> a가 없거나 하나 이상이며 b가 있음 (b, ab, addddddb, ....)
a+      ==> a가 한글자 이상 (a, bbbba, bbba, bbbaaabbbbb, ....)
^ba?c ==> a가 없거나 있고 b로 시작하며 c를 포함 (bac, bc, bbbaccc, ....)
※ bbbaeccc는 b와c사이에 a외의 값이 있으면 거짓

 

3) 정규표현식 () / {} / [] / -

 

 연산자

설명 

( )

 문자열의 그룹 지정

{min, max}

 바로 앞 문자의 반복횟수 지정 

[ ] 

 [ ]안의 문자중 하나이상

A-Z

 A ~ Z 사이의 문자 

ex)
(ab)         ==> 문자열중 ab가 있음 (ab, abb, cab, cabd, ....)
(ab){1,2}  ==> ab가 1개이상 2개 이하인 문자열 (ab, abab, ....)
[abcde]   ==> abcde 중 하나이상의 문자 (wxyaz, wxyadz, ....)
[a-z]       ==> a ~ z중 하나이상의 문자 (012a, a, Aa, ....)
[:Alnum:]  ==> 알파벳과 숫자를 의미
[:Alpha:]  ==> 알파벳을 의미
[:digit:]    ==> 숫자의미
[:Xdigit:]  ==> 16진수를 의미

 

4)예제

- 숫자
^(-?[1-9][0-9]*)$ (정수)
^[0-9]+(.[0-9]+)?$ (소수)

 

- e-mail
^[_0-9a-zA-Z-]+(.[_0-9a-zA-Z]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z-]+)*$

 

- 주민번호
^[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])-[1-4][0-9]{6}$

 

- 한글
^[ㄱ-ㅎ가-힣]$

반응형
Comments