정규식 기초 > 개발강좌

개발강좌

프로그램 강좌 :
1. 유창화님의 썸네일, 정규표현식, 이미지관련 강좌
2. Sphinx 검색엔진을 이용한 도로명 주소 검색 시스템 구축

정규식 기초 정보

정규표현식 정규식 기초

본문

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개

전체 15
개발강좌 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT