HOME 개발팁 정규 표현 / 전화번호 / 이메일

프로그램 작업하다 좋은 팁, 정보, 테스트를 기록하는 곳입니다.


PHP | 정규 표현 / 전화번호 / 이메일

페이지 정보

작성자 관리자 작성일18-01-12 16:49 조회1,035회 댓글0건

본문

[전화번호만 뽑아내기]

$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:]]' 패턴 검사 코드의 경우, 연속되는 숫자 4개의 문자가 존재해야 함을 의미하는 [[:digit:]]{4} 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다.

[주소복사] https://www.goodsweb.kr/?u=D4198GH4
SNS 알리기
핀터레스트
텔레그램로
블로그로
카카오스토리
카톡 공유

관련 블로그
로딩중


5명  IP : 18.220.♡.61
001 34.♡.82.65 개인정보 처리방침
(/bbs/content.php?co_id=privacy)
002 34.♡.82.69 블로그 글쓰기 API 이용해 게시글 보내기 - 패키지몰
(/bbs/board.php?bo_table=pmall&wr_id=15)
003 64.♡.216.69 굿스웹 - 홈페이지 유지보수 관리
(/)
004 17.♡.75.189 우리집 - 차단기 - 갤러리
(/bbs/board.php?bo_table=photo&wr_id=17)
005 157.♡.39.204 오류안내 페이지
(/bbs/login_check.php)

접속자
  • 오늘 : 279
  • 어제 : 237
  • 최대 : 874
  • 전체 : 406,742

검색로봇(Robots) 최근 방문시간
  • GOOGLE : 8분 전
  • DAUM : 1시간 전
  • BING : 8시간 전
  • NAVER : 15시간 전

ETH : 0x8abf3B748ab78828AE07685e4fd53d1a606f18D3



페이스북 네이버 블로그 굿스웹 쇼핑몰 네이버 카페 굿스웹 트위터 굿스웹 티스토리 Google Play