PHP 문자추출 정규표현식 정리
PHP 문자추출 정규표현식 정리
특수문자
'.' - 어떤 문자이건 임의의 하나의 문자를 가르킨다.
EX) a.b 는 a와 b 사이에 하나의 문자가 포함된 문자열
asc , abc, akc 등
'*' - '*' 는 바로앞의 문자를 의미하고 해당 문자가 없거나 하나 이상 존재하는 문자를 가르킨다
EX) s*k
k, sk, ssk, sssk
'+' - '+' 는 '*' 와 비슷하다 앞에 문자를 의미하고 앞에 문자가 하나이상 존재하는 문자을 가르킨다
EX) s+k
sk, ssk, sssk
'?' - '?'는 바로 앞의 문자를 의미하고 그 문자가 없거나 한개임을 가르킨다.
EX) ex?e
ee, exe
'^' - '^' 는 바로 뒤에 문자를 의미하고 그 문자로 시작됨을 의미한다.
EX) ^The
The boy is handsome
'$' - '$' 는 바로 앞의 문자를 의미하고 해당 문자로 끝나는 것을 나타낸다 '^' 와는 반대 의미이다
EX) $bc bc로 끝나는 문자
abc
'[]' - '[]' 대괄호 는 안에 있는 문자열중 하나의 문자를 의미한다
EX) [abcd]
a, b, c, d
[] 안에 범위를 지정할 경우엔 '-' 문자를 사용할 수 있다.
EX) [1-9][A-Z]
1부터 9까지 , A부터 Z까지로 [123456789] 와 [ABCDEFGHIJKLMNOPQRSTUVWXYZ] 과 같은 뜻이다.
'{}' - '{}' 중괄호는 앞에 있는 문자 또는 문자열의 갯수를 나타낸다
EX) A{2}B
AAB
EX) A{2.}B 앞에 문자인 A가 최소 2개 이상인 문자열
AAB, AAAB, AAAAB
'()' - '()' 소괄호 는 괄호 안의 문자열을 그룹화한다
EX) A(BC){2} A 뒤의 BC가 두번이상 나타나는 문자열
ABCBC, KABCBC
'|' - '|' 는 OR 연산자로 쓰임
EX) MAN|WOMAN MAN 이거나 WOMAN
MAN SI HANDSOME, WOMAN IS BEAUTIFUL
정규표현식에서 특수문자의 사용
정규표현식의 특수문자를 그 문자 자체로 인식되게 사용할 경우엔 특수문자 앞에 역슬래시 '\' 문자를 붙여야 한다
EX) \*+ 문자 * 를 하나이상 포함하는 모든 문자열을 나타낸다
*sample, *address
함수명 |
기능 |
ereg() |
검색대상 문자열에서 정규표현식 나타낸 문자와 일치하는 문자열을 리턴 |
eregi_ereg() |
ereg 함수와 동일하며 대소문자를 구분하지 않는다. |
ereg_replace() |
대상 문자열에서 정규표현식으로 추출된 문자를 지정문자로 변환 |
eregi_replace() |
ereg_replace() 함수와 동일 대소문자를 구분하지 않는다 |
split |
정규표현식으로 추출된 문자열을 경계 문자로 나누어 배열에 저장 |
preg_match_all 정규표현식의 추출된 문자열을 모두 찾아 배열에 저장
int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
1 2 3 4 5 6 7 | <?php preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>this is a test</div>", $out, PREG_PATTERN_ORDER); echo $out[0][0] . ", " . $out[0][1] . "\n"; echo $out[1][0] . ", " . $out[1][1] . "\n"; ?> | cs |