정규표현식
Language/PHP 2010. 7. 27. 09:19PHP는 POSIX와 Perl이라는 두 가지 스타일 정규표현식을 지원한다.(POSIX가 기본)
POSIX가 배우기 쉽고 빠르지만 이진적으로 안전하지 않다고 한다.
POSIX를 기준으로 정리 들어가 보자.
1. 문자집합과 클래스
'.'문자 : 줄바꿈문자(\n)를 제외한 모든문자를 대신할 수 있다.
ex) .at // cat, sat, mat 등과 같은 셈
문자클래스([]) : []안의 문자들을 문자클래스라 한다.
ex) [aeiou] //모든 모음(aeiou중의 한글자)이라는 의미
범위 표현(-) : 범위를 사용하기 위한것으로 문자사이에 '-'를 사용
ex) [a-zA-Z] // 모든 대소문자 중의 한글자
제외(^) : []안에서 쓰일 때 'not'의 뜻으로 제외하고자 할때 사용
ex) [^a-z] // 소문자를 제외
^[a-z] // 소문자로 시작하는 것을 가리킴
문자클래스
- [[:alnum:]] : 알파벳 문자, 숫자
- [[:alpha:]] : 알파벳 문자
- [[:lower:]] : 소문자
- [[:upper:]] : 대문자
- [[:digit:]] : 십진법의 숫자
- [[:xdigit:]] : 16진법의 숫자, 문자
- [[:punct:]] : 구두점
- [[:blank:]] : 탭, 스페이스
- [[:space:]] : 공백 문자들
- [[:cntrl:]] : 컨트롤 문자들
- [[:print:]] : 모든 출력 가능한 문자들
- [[:graph:]] : 스페이스를 제외한 모든 출력 가능 문자
반복
'+' : 앞글자가 한번이상 반복될 수 있음을 뜻한다.
'*' : 앞글자가 0번이상 반복될 수 있음을 뜻한다.
부분표현식
() : ()안의 모든 것을 나타낸다.
ex) (very )*large //'large', 'very large', 'very very large'...등과 일치
반복의 횟수 제한하기
{} : {}안에 숫자를 넣어서 반복횟수 제한,
ex) (very){3} //3번 반복
(very){2,4} // 2~4번 사이로 반복
(very){2, } // 적어도 2번이상 반복
문자열의 시작과 끝 고정하기
'^' : 시작부분에 사용되며, 문자열 앞부분에 이 표현이 있어야 함을 의미
ex) ^bob // bob로 시작하는 문자열과 일치
'$' : 뒷부분에 사용되고, 이표현으로 문자열이 끝나야 함을 의미
ex) com$ //com으로 끝나는 문자열과 일치
^[a-z]$ // a-z까지의 모든글자(글자 하나)와 일치
특수문자 사용
',', '{', '$'등의 특수문자를 사용할때에는 이스케이프 문자(역슬래시)를 사용하면 된다.
ex) \, or \{ or \$ // , { $ 문자의 사용
선택하기
'|' : 여러 문자열중 선택하기 위해
ex) com | edu | net // com이나 edu또는 net과 일치하는 문자열
//--- split()를 이용한 이메일 분리 ---//
$address = 'username@mail.com';
$arr = split('\. | @', $address);
while( list($key, $value) = each($arr) ) {
echo $value;
}
2. ereg() 함수 - 문자열중에 찾는값이 있으면 true를 반환 아니면 false를 반환한다.
> ereg("찾는값", "문자열", array [matches])
3번째 인자를 사용할 경우에는 값을 찾아낸 문자열을 [matches]에 저장한다.
// 근데 배열저장값이 찾는값하고 왜 동일하지..? 난 문자열이 나오는걸 기대했었다...
3. eregi() 함수 - ereg와 같으나 대소문자를 구분한다.
> eregi("찾는값", "문자열", array [matches])
4. ereg_replace() 함수 - 문자열중 찾는값이 나오면 치환값으로 치환한다.
> ereg_replace("찾는값", "치환값", "문자열")
5. eregi_replace() 함수 - ereg_replace와 같으나 대소문자를 구분한다.
> eregi_replace("찾는값", "치환값", "문자열")
'Language > PHP' 카테고리의 다른 글
php.ini Session 옵션 (0) | 2010.08.02 |
---|---|
Warning: main(): URL file-access is disabled in the server (0) | 2010.08.01 |
strtotime() (0) | 2010.07.26 |
php xml parser (0) | 2010.07.21 |
자바스크립트 변수를 php변수로 넘기기 (0) | 2010.07.20 |