PHP preg_match_all()

Jmnote (토론 | 기여)님의 2021년 8월 12일 (목) 09:34 판 (→‎개요)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

PHP preg_match_all()
  • 정규표현식에 맞는 것을 모두 추출하는 PHP 함수
  • 패턴에 큰따옴표( " ) 사용시 백슬래시가 하나 더 필요하다.
$str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua"; 
preg_match_all('/do/', $str, $matches);
print_r( $matches[0] );

2 예시 1[ | ]

모든 태그 추출
preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches);
모든 a 태그 추출
preg_match_all("/(<(a+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches);
모든 맥주소 추출
preg_match_all("/([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}/", $text, $matches);

3 예시 2: URL 추출[ | ]

http://, https://로 시작하는 URL 수집
preg_match_all("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $html, $matches);
//, http://, https://로 시작하는 URL 수집
preg_match_all("/(\b(?:(?:https?|ftp):))?\/\/[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $text, $matches);

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}