정규식 기초
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. 정규식을 테스트할 수 있는 홈페이지
게시판 목록
개발강좌
프로그램 강좌 :
1. 유창화님의 썸네일, 정규표현식, 이미지관련 강좌
2. Sphinx 검색엔진을 이용한 도로명 주소 검색 시스템 구축
1. 유창화님의 썸네일, 정규표현식, 이미지관련 강좌
2. Sphinx 검색엔진을 이용한 도로명 주소 검색 시스템 구축
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 107 | 그누보드5 |
|
2개월 전 | 127 | |
| 106 | 그누보드5 |
선택과집중
|
3개월 전 | 342 | |
| 105 | 그누보드5 |
선택과집중
|
4개월 전 | 326 | |
| 104 | 그누보드5 |
선택과집중
|
5개월 전 | 284 | |
| 103 | 그누보드5 | 1년 전 | 1253 | ||
| 102 | 그누보드5 | 2년 전 | 918 | ||
| 101 | 그누보드5 | 2년 전 | 1008 | ||
| 100 | 그누보드5 |
|
2년 전 | 2278 | |
| 99 | 그누보드5 |
|
2년 전 | 843 | |
| 98 | 정규표현식 |
|
2년 전 | 1096 | |
| 97 | 그누보드5 | 3년 전 | 2305 | ||
| 96 | 그누보드5 | 3년 전 | 2698 | ||
| 95 | 그누보드5 |
|
3년 전 | 3156 | |
| 94 | 그누보드5 |
|
3년 전 | 3578 | |
| 93 | 그누보드5 | 3년 전 | 2853 | ||
| 92 | 그누보드5 | 4년 전 | 5629 | ||
| 91 | 그누보드5 | 4년 전 | 3346 | ||
| 90 | 그누보드5 | 7년 전 | 8250 | ||
| 89 | 정규표현식 | 7년 전 | 8290 | ||
| 88 | 그누보드5 | 7년 전 | 4581 | ||
| 87 | 정규표현식 | 8년 전 | 7388 | ||
| 86 | 그누보드5 | 8년 전 | 5447 | ||
| 85 | 정규표현식 | 8년 전 | 4098 | ||
| 84 | 정규표현식 |
프로그래머7
|
8년 전 | 3696 | |
| 83 | 정규표현식 |
프로그래머7
|
8년 전 | 3353 | |
| 82 | 정규표현식 |
프로그래머7
|
8년 전 | 3582 | |
| 81 | 이미지관련 | 8년 전 | 8437 | ||
| 80 | 이미지관련 | 8년 전 | 6640 | ||
| 79 | 정규표현식 | 8년 전 | 46427 | ||
| 78 | 정규표현식 | 8년 전 | 5454 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기