ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정규식 정리
    웹프로그래밍/PHP 2015.06.14 08:37
    - 어떠한 형식에 맞춰 일치하는 결과를 가지고 올 수 있는 것

    가끔 정규식을 분석해야 할 때가 있다. 그래서 한번 정리해 보았다.

     

    정규식에 사용되는 기호

    ^    (caret) 문장의 시작

    $    (dollar) 문장의 끝

    .    (period) 줄바꿈 또는 단일문자 ex) h.t  => hat, hothit, hut, h7t. 등 검출

    []    (bracket) 문자의 집합이나 범위를 나타냄, 두 문자 사이에 – 는 범위를 나타냄

    {}    (braced) {} 내의 숫자는 직전의 선행 문자 수를 나타냄

    *    (asterisk) 직전의 선행문자가 0번 또는 그이상 나타냄

    +    (asterisk) 직전의 선행문자가 1번 이상 나타냄

    ?    (asterisk) 직전의 선행문자가 0번 또는 1번 나타냄

    |    (bar) or 을 나타냄

    \    (backslash) 위에서 사용하는 특수문자를 정규식내에서 문자로 취급하고 싶을 때 \를 선행 기술

     

    예1)

    abc    abc 가 있는 것

    ^abc    abc 로 시작하는 것

    abc$    abc 로 끝나는 것

    ^abc$    abc 로 시작하고 끝나는 것

    [abc]    a,b,c 전부중 하나 포함한 경우

    [a-z]    a 에서 z 중 하나 포함한 경우

    ^[0-9]    숫자 0~9 아무 숫자나 상관없으니 숫자로 시작하는 패턴을 찾는 것

    [^0-9]    숫자가 들어있지 않는 패턴을 찾는 것

    ^[^0-9]    숫자가 들어있지 않는 문자로 시작하는 패턴을 찾는 것

    a{3}    a 의 3번 반복인 aaa 인 것

    a{3,}    a 가 3번 이상 반복인 것, aaa, aaaa, aaaaa

    [0-9]{2}    두자리 숫자

    abc[7-9]{2}    abc 포함 7에서 9까지 2자리 숫자 포함, abc77, abc78, abc97

     

    예2) 대표적으로 많이 사용하는 정규식

     

    이메일

    "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"

     

    집전화 : 지역번호가 들어간 전화번호 확인

    "/^(070|02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064)-\d{3,4}-\d{4}$/u"

     

    휴대폰번호 : 휴대폰 번호만 입력받을 경우

    "/^(010|011|016|017|018|019)-\d{3,4}-\d{4}$/u"

     

    우편번호

    "/^\d{3}-?\d{3}$/u"

     

    아이디 : 영숫자만 허용, 첫글자는 영문자로 시작, 4~8자리 이내로 입력

    "/^[a-zA-Z]\w{2,7}$/u"

     

    주민번호 : 숫자 13자리, 가운데 – 는 입력 해도 안해도 됨

    "/^\d{2}[0-1]\d[0-3]\d-?[1-6]\d{6}$/u"

     

    정규식을 이용한 치환

    preg_replace( "치환될 정규식", "변환값","원본 문자열");

     

    예) 태그 제거

     

    iframe 제거 

    $STRING=preg_replace("!<iframe(.*?)<\/iframe>!is","",$STRING);

     

    &nbsp;  제거

    $STRING=str_replace("&nbsp;"," ",$STRING);

     

    복수 공백 하나로

    $STRING=preg_replace("/\s{2,}/"," ",$STRING)

     

    태그안에 style 속성 제거

    $STRING=preg_replace("/ style=([^\"\']+) /"," ",$STRING); // style=border:0... 따옴표가 없을때
    $STRING=preg_replace("/ style=(\"|\')?([^\"\']+)(\"|\')?/","",$STRING); // style="border:0..." 따옴표 있을때

     

    태그안의 width=, height= 속성 제거

    $STRING=preg_replace("/ width=(\"|\')?\d+(\"|\')?/","",$STRING);
    $STRING=preg_replace("/ height=(\"|\')?\d+(\"|\')?/","",$STRING);

     

    '웹프로그래밍 > PHP' 카테고리의 다른 글

    Open /etc/postfix/main.cf: Permission denied  (0) 2016.01.13
    PHP에서 csv로 저장시 연락처 0 삭제 방지  (0) 2015.10.23
    정규식 정리  (0) 2015.06.14
    [php] 파일 이동, 복사 함수  (0) 2015.04.15
    PHP + jQuery AJAX Upload  (0) 2015.04.10
    PHP XML CDATA Parsing  (0) 2015.04.10

    댓글 0

Designed by Tistory.