>  기사  >  백엔드 개발  >  PHP에서 HTML 앵커 태그 외부의 키워드를 일치시키기 위해 정규식을 어떻게 사용할 수 있습니까?

PHP에서 HTML 앵커 태그 외부의 키워드를 일치시키기 위해 정규식을 어떻게 사용할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-20 13:33:03589검색

How Can Regular Expressions Be Used to Match Keywords Outside HTML Anchor Tags in PHP?

PHP에서 정규 표현식을 사용하여 HTML 앵커 태그 외부에서 키워드 일치

HTML 콘텐츠를 처리하는 동안 직면하게 되는 일반적인 문제는 특정 작업을 수행해야 한다는 것입니다. 텍스트 내의 특정 키워드에 대해. 그러나 앵커() 태그와 같은 특정 HTML 요소 내에 나타나는 키워드 인스턴스를 제외해야 하는 경우가 많습니다.

이러한 상황은 키워드 발생을 사전 정의이지만 키워드가 지정된 대상 URL이 있는 앵커 태그 내에 아직 포함되지 않은 경우에만 해당됩니다. 이를 달성하려면 앵커 태그 내의 특정 패턴을 제외하면서 키워드와 일치하도록 PHP 정규 표현식을 구성해야 합니다.

해결책은 이 제외를 적용하기 위해 부정 예측 어설션을 사용하는 것입니다. 다음 정규식은 앵커 태그 내에 나타나지 않는 경우에만 키워드 발생을 효과적으로 일치시키고 대체합니다.

<code class="php">$str = preg_replace('~Moses(?!(?>[^<]*(?:<(?!/?a\b)[^<]*)*)</a>)~i',
                    '<a href="dictionary.php?k=keyword"></a>', $str);</code>

(?>...)로 묶인 부정 예측 어설션은 키워드가 다음과 같은지 확인합니다. 앞에는 여는 앵커 태그가 없고 뒤에는 닫는 앵커 태그가 옵니다. 부정 예측은 문자를 사용하지 않고 나머지 문자열을 평가하므로 주요 일치 규칙이 예측 이후에도 계속될 수 있습니다.

이 특정 경우에 부정 예측은 Moses 바로 뒤에 시퀀스가 ​​나오지 않는다고 주장합니다.

  1. < 문자
  2. 자기 닫힘이 아닌 여는 앵커 태그
  3. 비< 문자
  4. 닫는 앵커 태그

Moses 키워드 앞에 이 시퀀스가 ​​없으면 미리보기가 성공하여 키워드가 앵커 태그 내에 없음을 나타냅니다. 이를 통해 기본 일치 규칙이 키워드를 원하는 링크 형식으로 바꿀 수 있습니다.

의도하지 않은 교체를 방지하려면 일관되고 정확한 결과를 보장하기 위해 다양한 입력 시나리오에 대해 정규식을 철저히 테스트하는 것이 중요합니다.

위 내용은 PHP에서 HTML 앵커 태그 외부의 키워드를 일치시키기 위해 정규식을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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