메뉴 건너뛰기

프로그램언어

조회 수 1215 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

[전화번호만 뽑아내기] 

$rex="/[0-9]{3}-[0-9]{4}-[0-9]{4}/" 

  

[이메일만 뽑아내기] 

요즘엔 이런식으로 이메일 수집을 못하게 이미지로 처리하는 경우가 많다. 

$rex="/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/"; 

  

  

[특정태그로 둘러 쌓인 내용만 뽑아내기] 

이 녀석이 핵심이다. 보통 영어로만 된 경우에는 [A-Za-z]* 라고 하면 되는데, 한글일 경우 참으로 애매해진다. 그럴때 아래와 같은 꽁수(?)를 쓴다. 

$rex="/\<span id=\"moonseller\"\>[>^]\<\/span\>/"; 

이정도만 하면 왠만한 사이트들은 다 긁어 올수 있다. 좀 더 알고 싶으면 아래 링크들을 참조하자. 

  

  

  

정규 표현식에서 사용되는 패턴 문자 몇 가지를 소개 

  

+ -> '+' 표시 바로 앞의 문자열(문자)이 한 번 이상 존재하는 것을 의미함  

^ -> '^' 표시 뒤의 문자열(문자)로 시작되는 것을 의미함  

[ ] -> '[ ]' 로 둘러쌓인 문자열(문자) 중에서 하나의 문자를 의미함  

[^ ] -> '[ ]' 패턴의 문자열(문자)을 제외한 나머지 문자열(문자)을 의미함  

{ } -> '{ }' 앞의 문자열(문자)이 '{ }' 안의 숫자가 나타내는 갯수만큼 존재하는 것을 의미함  

  

[[:digit:]] -> 하나의 숫자(0 에서 9 까지) 를 의미함 

[[:alpha:]] -> 하나의 영문자(a 에서 Z 까지) 를 의미함  

[[:alnum:]] -> 하나의 숫자(0 에서 9 까지) 또는 영문자(a 에서 Z 까지) 를 의미함  

[[:space:]] -> 하나의 공백 문자(blank) 를 의미함  

  

  

위 패턴 문자를 사용한 정규 표현식이 어떻게 사용되는지 살펴보기 전에, 위와 같은 패턴 문자로 나타내어진 정규 표현식을 사용하기 위해 필요한 함수가 있는데, ereg() 함수가 있습니다. 

  

ereg() 함수는 일반적으로 두 개의 인자를 취하는데, 첫 번째 인자는 패턴 문자로 나타내어진 정규 표현식이 오며 두 번째 인자는 그 정규 표현식에 의해 검색될 대상 문자열이 옵니다. 

  

이렇게 ereg() 함수 내의 두 번째 인자인 검색 대상 문자열에서 첫 번째 인자인 정규 표현식의 패턴이 존재할 경우 ereg() 함수는 true 값을 반환하며 그렇지 않을 경우에는 false 값을 반환하게 됩니다. 

  

그럼, ereg() 함수를 사용하여 위 패턴 문자로 나타내어진 정규 표현식이 어떻게 사용되는지 몇 가지 예제를 살펴보겠습니다. 

  

<? 

$string = "mizzle PHP 2002"; 

  

# '+' 패턴 검사 

  

if(ereg("iz+", $string)) { 

 echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인 

} else { 

 echo("지정된 패턴과 일치하지 않습니다.<br>"); 

} 

  

# '^' 패턴 검사 

  

if(ereg("^mi", $string)) { 

 echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인 

} else { 

 echo("지정된 패턴과 일치하지 않습니다.<br>"); 

} 

  

# '[ ]' 패턴 검사 

  

if(ereg("[si]m", $string)) { 

 echo("지정된 패턴과 일치합니다.<br>"); 

} else { 

 echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인 

} 

  

# '[[:digit:]]' 패턴 검사 

  

if(ereg("[[:digit:]]{4}", $string)) { 

 echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인 

} else { 

 echo("지정된 패턴과 일치하지 않습니다.<br>"); 

} 

  

# '[[:alpha]]' 패턴 검사 

  

if(ereg("[[:alpha:]]{7}", $string)) { 

 echo("지정된 패턴과 일치합니다.<br>"); 

} else { 

 echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인 

} 

  

# '[[:space]]' 패턴 검사 

  

if(ereg("[[:space:]]{2}", $string)) { 

 echo("지정된 패턴과 일치합니다.<br>"); 

} else { 

 echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인 

} 

?> 

  

위 예제를 실행하게 되면, 위 예제 코드의 주석("#실행 라인")으로 표기한 라인이 실행되는 것을 볼 수 있습니다. 

  

위 예제 중 몇 가지만 살펴보면, 

  

'+' 패턴 검사 코드의 경우, "iz" 문자열이 한 번 이상 존재해야 함을 의미하는 iz+ 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다. 

  

'[ ]' 패턴 검사 코드의 경우, "sm" 또는 "im" 문자열이 존재해야 함을 의미하는 [si]m 패턴이 "mizzle PHP 2002" 문자열에 존재하지 않기 때문에 비교 조건식에 일치하지 않는 결과가 출력됩니다. 

  

'[[:digit:]]' 패


List of Articles
번호 제목 날짜 조회 수
260 PHP error 메시지 출력 file 2015.04.14 20927
259 PHP EXCEL export시 시트 이름 지정하여 여러 시트에 데이터 쓰기 2017.03.06 18271
258 PHP http -> https 로 전환 2023.01.12 240
257 PHP http 를 https 로 전환(redirect), http->https 2019.02.19 2185
256 PHP Mcrypt 라이브러리를 활용한 암호화 시스템 2016.12.22 19980
255 PHP Notice: Use of undefined constant ... assumed ... 오류 2021.03.26 309
254 PHP SimpleHtmlDom Parser로 HTML 파싱하기 2023.01.12 225
253 PHP split()와 explode()의 차이점 2018.10.27 3539
252 PHP str_replace php 문자열치환 2023.01.12 202
251 PHP switch 문 file 2015.04.14 20994
250 php www 붙이기 2023.01.12 237
249 PHP XML 문서파싱 (SAX 방식 , DOM 방식) file 2018.10.27 3589
248 PHP ZIP 압축파일 만들기 file 2023.01.12 253
247 PHP 가변변수 $$ file 2019.02.19 1452
246 php 간단 심플한 달력만들기 file 2023.01.12 245
245 PHP 날짜 함수 2017.04.13 17685
244 PHP 날짜, 시간 관련 함수. date(), mktime() 2017.03.06 16712
243 PHP 날짜/시간 정리 2017.03.07 18635
242 php 내장함수 2017.03.07 17018
241 PHP 네이버블로그 원격 글쓰기 API 소스 file 2018.02.09 12479
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved