PHP 정규 표현식 문법 본문
PHP 정규 표현식 문법
- 2016. 5. 5. 21:11
원문/출처 : http://smartjuho.tistory.com/entry/PHP-%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D-%EB%AC%B8%EB%B2%95
< 정규 표현식 >
● .
. | 임의의 한 문자. 줄바꿈 문자(/n)를 제외한 모든 문자를 대신할 수 있음 |
예시 | .at // cat, hat, mat ... |
● 반복
+ | 앞 글자가 한번 이상 반복될 수 있음 |
예시 | (very )+nice = very nice, very very nice |
* | 앞 글자가 0번 이상 반복될 수 있음 |
예시 | (very )*nice = nice, very nice, very very nice |
● ?
? | 없거나 하나인 문자. 하위 표현식을 옵션으로 취급한다. |
예시 | ca?t = ct, cat, abcatd |
● -
- | 범위를 사용하기 위한 것으로 문자 사이에 ‘-’를 사용 |
예시 | [a-zA-Z] // 모든 대소문자 중의 한글자 |
● ^
^ | []안에서 사용할 때, ‘not’의 의미로, 제외하고자할 때 사용. |
예시 | [^a-z] // 소문자 제외 cf)^[a-z] // 소문자로 시작 |
● 문자열의 시작과 끝 고정하기
^ | 시작부분에 사용되며, 문자열 앞부분에 이 표현이 있어야 함 |
예시 | ^bob // bob으로 시작하는 문자열과 일치 |
$ | 뒷부분에 사용되며, 이 표현으로 문자열이 끝나야 함 |
예시 | com$ // com으로 끝나는 문자열과 일치 ^[a-z]$ // a-z까지의 모든 글자와 일치 |
● []
[] | []안의 문자들을 문자 클래스라 한다, 포함 |
예시 | [aeiou] // a 또는 e 또는 i 또는 o 또는 u를 포함하는 정보 |
● {}
{} | {}안에 숫자를 넣어서 반복 횟수 제한 |
예시 | (very){3} // 3번 반복 (very){2, 4} // 2~4번 사이로 반복 (very){2, } // 적어도 2번 이상 반복 (very ){2,4} = very very, very very very, very very very very |
● ()
() | 패턴의 시작과 끝 |
예시 | (very)*large // 'large', 'very large', 'very very large' ... co(m){2}on // common |
● |
| | or, 여러 문자열 중 선택 |
예시 | com | edu | net // com이나 edu또는 net과 일치하는 문자열 |
● 문자클래스
[[:alnum:]] : 알파벳 문자, 숫자 [[:alpha:]] : 알파벳 문자 [[:lower:]] : 소문자 [[:upper:]] : 대문자 [[:digit:]] : 10진법 숫자 [[:xdigit:]] : 16진법 숫자, 문자 [[:punct:]] : 구두점 [[:blank:]] : 탭, 스페이스 [[:space:]] : 공백 문자 [[:cntrl:]] : 컨트롤 문자 [[:print:]] : 모든 출력 가능한 문자 [[:graph:]] : 스페이스를 제외한 모든 출력 가능 문자 |
● ereg(), eregi() (이 함수는 PHP 5.3.0부터 배제됨)
ereg() | 문자열 중에 찾는 값이 있으면, true를 반환. 아니면 false를 반환 |
예제 | <?php if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) { echo "$regs[3].$regs[2].$regs[1]"; } else { echo "Invalid date format: $date"; } ?> |
결과 |
eregi() | 〃, 대소문자를 구분 |
예제 | <?php $string = 'XYZ'; if (eregi('z', $string)) { echo "'$string' contains a 'z' or 'Z'!"; } ?>
|
결과 |
● ereg_replace(), eregi_replace()
ereg_replace() | 문자열 중 찾는 값이 나오면 치환값으로 치환 |
예제 | <?php $string = "This is a test"; echo str_replace(" is", " was", $string); echo ereg_replace("( )is", "\\1was", $string); echo ereg_replace("(( )is)", "\\2was", $string); ?> |
결과 |
eregi_replace() | 〃, 대소문자를 구분 |
예제 | <? $text = "\"c:\\aaaa\\bbbb\\ccc\\"; $home=eregi_replace('\"[a-zA-Z]:[\]|[\]','/', $text); echo "원래문자열 : {$text} <br>"; echo "바뀐문자열 : {$home}"; ?> |
결과 |
|
RECENT COMMENT