> 백엔드 개발 > PHP 튜토리얼 > 텍스트 교체 중 HTML 태그 수정을 방지하기 위해 PHP Regex를 어떻게 사용할 수 있습니까?

텍스트 교체 중 HTML 태그 수정을 방지하기 위해 PHP Regex를 어떻게 사용할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-04 09:41:10
원래의
527명이 탐색했습니다.

How Can I Use PHP Regex to Avoid Modifying HTML Tags During Text Replacement?

HTML 태그 내 일치 항목을 제외하는 PHP 정규식

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿