정규식 기초 정보
정규표현식 정규식 기초본문
1. 정규식의 사전적 의미부터 알아보자.
정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp 또는 regex)은
특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.
2. 정규식에서 사용되는 주요기호를 알아보자.
+ : 최소 1회 이상 나오는 경우
$ : 마지막 글자
* : 최소 0회 이상 나오는 경우
\ : 특수문자, 특수문자 앞에서 특수문자 사용을 제외
? : 최소 0회~최대 1회 나오는 경우
. : 엔터를 제외한 모든 글자
i{n} : i가 연속으로 n회 나오는 경우
| : OR
i{n1, n2} : i가 n1회~n2회 나오는 경우
[] : 문자종류, 문자범위
i{n,} : i가 n회 이상 나오는 경우
() : 문자를 그룹으로 묶음
\d : 숫자
\w : 문자와 숫자
\s : 공백문자
3. 정규식과 관련있는 PHP 내장함수 사용법
preg_replace("패턴" , "바꿀 패턴" , "바꿀 문장");
preg_match("패턴","추출할 문장","결과 배열");
preg_match_all("패턴", "추출할 문장", "결과 배열");
preg_split("패턴", "추출할 문장");
preg_match - 첫번째 매치가 일어나면 실행을 중지한다. (즉, 최대 매치횟수는 1회)
preg_match_all - 전체 매치된 횟수를 반환하며, 오류시 FALSE를 반환한다.
4. 정규식과 PHP내장함수를 이용한 예제
1_ textarea 제거
$str = preg_replace("!<textarea(.*?)<\/textarea>!is", "", $str);
textarea뿐만 아니라 <태그></태그>로 된 모든 것들에 이용가능하다.
2_ 메타태그 제거
$str = preg_replace("!<meta(.*?)>!is", "", $str);
마찬가지로 메타태그뿐만 아니라 <태그 />로 된 모든 것들에 이용가능하다.
3_ 연속된 공백을 1개의 공백으로
$str = preg_replace("/\s{2,}/", " ", $str);
4_ 태그 안에 있는 스타일 속성 제거
$str = preg_replace("/ style=(\"|\')?([^\"\']+)(\"|\')?/", "", $str);
5_ 태그안의 width=, height= 속성 제거
$str = preg_replace("/ width=(\"|\')?\d+(\"|\')?/", "", $str);
$str = preg_replace("/ height=(\"|\')?\d+(\"|\')?/", "", $str);
6_ img 태그 추출 / img 태그 src 추출
preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $str, $matches);
preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $str, $matches);
7_ 호스트 추출
preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.naver.com/index.php", $matches);
$host = $matches[2];
5. 정규식을 테스트할 수 있는 홈페이지
추천
0
0
댓글 0개