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
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand