보안세상
PHP정규표현식 본문
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}$
- 한글
^[ㄱ-ㅎ가-힣]$
'공부' 카테고리의 다른 글
흥미로운 내용을 발견했네요,.데이터 마이닝을 위한 확률적 자료구조 (0) | 2015.06.24 |
---|---|
기초적인 MYSQL 문법들 (0) | 2015.06.24 |
ereg / eregi / ereg_replace / eregi_replace 함수 (0) | 2015.06.24 |
MSSQL STRING 관련 함수 (0) | 2015.06.24 |
javascript event H (0) | 2015.06.24 |