>백엔드 개발 >PHP 튜토리얼 >HTML 태그에서 콘텐츠를 추출할 때 Regex에서 개행 문자를 어떻게 일치시킬 수 있습니까?

HTML 태그에서 콘텐츠를 추출할 때 Regex에서 개행 문자를 어떻게 일치시킬 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 01:31:28333검색

How Can I Match Newline Characters in Regex When Extracting Content from HTML Tags?

DOTALL 정규식 수정자와 개행 문자 일치

HTML div 태그에 포함된 일반 문자, 공백 및 개행이 포함된 문자열로 작업할 때, 목표는

정규 표현식을 사용합니다. 표준 .* 메타 문자가 개행 문자와 일치하지 않을 때 일반적인 문제가 발생합니다.

이를 극복하려면 DOTALL 수정자(/s)를 사용해야 합니다. 이 수정자는 점 문자(정규식의 .)가 줄바꿈을 포함한 모든 문자와 일치하는지 확인합니다. 이 수정자를 정규식에 통합하면 div 태그 내의 콘텐츠를 정확하게 캡처하는 것이 가능해집니다.

'/<div>(.*)<\/div>/s'

그러나 이 접근 방식은 욕심 많은 일치를 초래할 수 있습니다. 이 문제를 해결하려면 탐욕스럽지 않은 일치를 사용하는 것이 좋습니다.

'/<div>(.*?)<\/div>/s'

또는 < 다른 태그가 없는 경우에도 해결책이 될 수 있습니다.

'/<div>([^<]*)<\/div>/'

정규식 구분 기호로 / 이외의 문자를 사용하면 가독성이 향상되어 . 다음은 #을 구분 기호로 사용하는 예입니다.

'#<div>([^<]*)</div>#'

이러한 해결 방법은 간단한 경우에는 충분할 수 있지만 HTML은 복잡하고 정규식 구문 분석만으로는 충분하지 않을 수 있다는 점을 인식하는 것이 중요합니다. 포괄적이고 안정적인 구문 분석을 보장하려면 전용 HTML 파서 사용을 고려하는 것이 좋습니다.

위 내용은 HTML 태그에서 콘텐츠를 추출할 때 Regex에서 개행 문자를 어떻게 일치시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.