PHP preg_match_all()

Jmnote bot (토론 | 기여)님의 2020년 11월 2일 (월) 02:55 판 (봇: 자동으로 텍스트 교체 (-</source> +</syntaxhighlight>, -<source +<syntaxhighlight ))

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] );
# Array
# (
#     [0] => do
#     [1] => do
#     [2] => do
# )

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 }}