HTML 문서에서 preg_replace를 사용하여 텍스트 교체를 수행할 때 실수로 HTML 태그를 수정하지 않는 것이 중요합니다. 예를 들어, 내에 특정 단어를 래핑하는 작업을 생각해 보세요. 태그:
<p>I am making a preg_replace on html page. My pattern is aimed to add surrounding tag to some words in html. However, sometimes my regular expression modifies html tags...</p>
다음 정규식은 "yasar"를 태그:
preg_replace("/(asf|gfd|oyws)/", '<span>
안타깝게도 이 정규식은 앵커 태그의 alt 속성 내에서 "yasar"와도 일치하므로 원치 않는 변경이 발생합니다.
원치 않는 일치를 방지하기 위해 어설션을 활용할 수 있습니다. 검색 중인 단어(예: "asf", "gfd" 또는 "oyws")가 "<" 앞에 나타나지 않는다고 주장합니다. 또는 ">" 뒤에 HTML 태그 내에서 일치하는 항목을 효과적으로 제외할 수 있습니다. 다음은 이 접근 방식을 사용하는 수정된 정규식입니다.
/(asf|foo|barr)(?=[^>]*(<|$))/
예측 어설션(?=[^>]*(<|$))은 단어 뒤에 HTML 태그 오프너가 와야 함을 보장합니다. ("<") 또는 문자열의 끝("$"로 표시). 이는 태그 내의 일치 항목을 효과적으로 제외합니다.
이 주장을 정규식에 통합하면 HTML 태그를 수정하지 않고도 교체를 수행할 수 있으므로 alt 속성의 yasar가 그대로 유지됩니다.
<a href="example.com" alt="yasar home page">yasar</a>
위 내용은 텍스트 교체 중 HTML 태그 수정을 방지하기 위해 PHP Regex를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!