PHP

PHP 정규 표현식(정규식:Regular expression)

ssNi 2013. 3. 8. 12:16

정규표현식에서 정규화란?

  • 어떤 문자열에 대해서 고정된 규칙이 있는 것을 사람이 보기에 짧고 보기 좋게 정의하고 규정한 것.
  • 짧고 보기 좋게 정의한 것이지 정규화하지 않았다라고 프로그램의 성능이 크게 저하되거나, 동작하지 않는 것은 아니다.

기능

  • 문자열의 일정한 패턴을 찾던지 치환하여 주는 기능을 가짐.

    Ex) 메일 주소검사, 웹에서 폼 값을 처리할 때 특정 폼의 형식이 원하는 형식에 맞는지 검사할 때(필터링)

사용 함수

  • eregi, eregi_replace, ereg, ereg_replace(PHP 5.3.0부터 사용하지 않음)
  • perl의 함수 패턴을 그대로 사용할 수 있도록 해놓은 함수 : preg_match, preg_match_all, preg_quote, preg_replace, etc…

주요 함수 설명

  1. preg_match: int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

    설명 : 입력받은 문자열(string $subject)에 입력받은 정규표현식 패턴(string $pattern)과 일치되는 문자열이 존재하는지 판단함.

    인자 :

    -> string $pattern :

    문자열로 된 정규 표현식 패턴

    ("[구분자]표현식[구분자][변경자]" 또는 '[구분자]표현식[구분자][변경자]')

    -> string $subject : 전체 대상 문자열

    -> array &$matches : 패턴과 일치하는 문자열을 저장할 배열

    결과값 :

    패턴과 매치되는 문자열을 찾았을 때는 1 을 반환, 못 찾았을 때는 false 를 반환.

    단, 세번째 인자(배열, Array)가 존재할 경우, 매치되는 문자열이 해당 배열 변수의 0번째에 할당되어 반환

    용도 :

    특정 패턴의 문자열이 존재하는지 여부를 확인 할 때나,

    특정 패턴의 문자열을 찾아서 그 문자열을 배열로 받고 싶을 때 사용함.

    ※ 메뉴얼에서 함수를 정의할 때 [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] 같이

    [] 으로 둘러 쌓여 있는 경우가 있다.

    이것은 사용시 반드시 필요한 인자가 아니라 생략 가능한 인자라는 뜻임.

    보통 사용자 함수를 만들 때 보면,

    function get_title ($title, $len=50) {.....}

    이런식으로 쓰는 경우가 많음.

    이 함수는 사용할때 get_title ($title); 로도 사용할수 있고, get_title($title, $len); 로도 사용할수 있는 것과 같은 이치임.

    ※ &$matches 와 같이 변수 앞에 & 가 붙는 경우는 $matches 변수를 함수 내부에서 참조를 하겠다는 뜻임.

  2. preg_match_all : 정규식으로 원하는 문자열만 전부 찾아주는 함수.
  3. preg_quote : string preg_quote ( string $str [, string $delimiter ] )

    str에서 정규 표현식 문법에 포함되는 모든 문자의 앞에 백슬래시를 덧붙입니다. 어떠한 텍스트에 특수 정규 표현식 문자를 포함하는 런타임 문자열을 처리할 때 유용함.

  4. preg_replace : 해당 패턴을 찾아서 다른 패턴으로 바꿔줌.

    preg_replace("[패턴]" , "[바꿀 패턴]" , "[바꿀 문장]");

참고 블로그 : http://apmusers.com/tt/dbckdghk/130

http://ra2kstar.tistory.com/117

'PHP' 카테고리의 다른 글

Source Tree  (0) 2013.03.11
생활코딩 - Xdebug  (0) 2013.03.11
curl 원격지 xml 가져오기  (0) 2013.03.11
정규 표현식 설명  (0) 2013.03.08
PHP라이브러리 – Snoopy  (0) 2013.03.08