메뉴 건너뛰기

프로그램언어

조회 수 1206 추천 수 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
번호 제목 날짜 조회 수
100 포트체크 방법 2019.01.16 1288
99 프레임 사이트에서 새로고침(F5) 할때 초기화면으로 이동하지 않음 2019.01.08 1280
98 자동으로 다른 페이지로 넘어가는 함수 2019.01.08 1256
97 cUrl를 이용한 json 데이타 주고 받기 2020.09.28 1253
96 단어필터링 2019.01.08 1251
95 태그 또는 멘션 소스 뽐아내기방법 2019.01.16 1249
94 파일 2019.01.08 1226
93 사업자번호로 사업자 종류알기 2019.01.08 1222
92 디렉토리의 제어 2019.01.08 1222
91 input 자동완성기능 끄기 2019.02.19 1217
» 정규 표현 / 전화번호 / 이메일 2019.01.16 1206
89 PHP + 유튜브(youtube) 동영상 업로드 연동 소스 2021.01.21 1135
88 include 와 namespace 2019.01.08 1087
87 MYSQL DB의 모든 테이블에서 문자열 검색 하기 2021.03.26 913
86 다중파일 업로드 + 이미지 미리보기 (Javascript, jQuery ) file 2020.12.15 912
85 사진이 회전되서 올라갈 경우 2020.05.25 767
84 phpMyAdmin WebMysql 에 CSV 엑셀 파일 업로드 입력하기 ( Excel / Upload / data / 데이터 / 데이타 ) file 2021.03.25 754
83 함수이름을 변수로 사용하기, 매개변수 없는 함수에 매개변수 넣기 2021.03.26 746
82 날짜함수 사용하여 한달에 주차 구하기 weeks by month 2021.07.08 695
81 PEAR DB 관련 함수들 2021.03.26 690
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved