티스토리 뷰

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

PHP 문자추출 정규표현식 정리

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

댓글