본문 바로가기

[Terry] PHP

13. PHP 정규 표현식

 정규표현식

정규 표현식이란 어떠한 값이 특정한 형태를 갖는지를 검사하는 도구로, 주로 폼에 입력된 데이터를 검사하기 위해 이용된다.

 

ereg, eregi

문자열에 어떤 문자가 포함되어 있는지를 검사하는 함수이다.

두 함수의 차이점은 ereg는 대소문자를 구분하지만, eregi는 대소문자를 구분하지 않는다.

형식

저장될변수 = ereg("검사할 문자", "검사대상 문자열");

예제

  1. <?
  2. $a = "abcdef";

  3. echo ereg("a", $a);   //a가 포함되어 있을경우 TRUE 리턴, TRUE는 1이다.

  4. echo ereg("A", $a);    //ereg는 대소문자를 구분하기 때문에 FALSE 리턴, FALSE는 빈값이다.

  5. echo eregi("A", $a);   //eregi는 대소문자를 구분하지 않기 때문에 TRUE 리턴

  6. ?>

 

^, $

^와 $는 시작과 끝을 나타낸다.

기능

  • ^ : 문자열의 시작을 의미
  • $ : 문자열의 끝을 의미

예제

  1. <?
  2. $a = "abcd";

  3. echo ereg("^a", $a); //a로 시작하는 문자열이면 TRUE 리턴

  4. echo ereg("d$", $a);    //d로 끝나는 문자열이면 TRUE 리턴

  5. ?>

참고

 대상문자열 정규표현식 설명 결과
abc ^a a로 시작하는 문자열 TRUE
abc c$ c로 끝나는 문자열 TRUE
abc ^ab ab로 시작하는 문자열 TRUE
abc abc abc를 포함하는 문자열 TRUE
abc ^abc$ abc인 문자열 TRUE

 

*, +, ?

*, +, ? 는 문자의 반복에 관한 연산자이다.

기능

  • * : 0개 또는 1개 이상
  • + : 1개 또는 1개 이상
  • ? : 0개 또는 1개

예제

 <?

$a="abcccc";

echo ereg("abc*", $a);    //ab뒤에 c가 0개 혹은 1개 이상 있는 문자열

?>

참고

 정규표현식  설명 결과
abc* ab뒤에 c가 0개 또는 1개이상있는 문자열 ab, abc, abcc, abccc, ...
abc+ ab뒤에 c가 1개 이상 있는 문자열 abc, abcc, abccc, ...
abc? ab뒤에 c가 없거나 1개 있는 문자열  ab, abc

 

{ }

*, +, ? 대신에 {}을 사용하여 문자열의 반복을 결정할 수 있다.

  1. 문자는 최소개수만큼 있어야 하고, 최대개수를 벗어날수 없다.
  2. 최소 개수는 꼭 적어주어야 하고, 최대개수를 적지 않을 경우 1개 이상의 수를 의미한다.
  3. {3}과 같이 하나의 수만 적어주면 3개만을 나타낸다.

형식

 문자{최소개수, 최대개수}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.