正则表达式匹配 HTML 标签外部以进行选择性标记
使用 preg_replace 将标签添加到特定单词时防止 HTML 标签内的匹配对于 HTML 页面,定义排除这些内容的正则表达式至关重要
原始模式:
preg_replace("/(asf|gfd|oyws)/", '<span>
弱点:
上面的模式也将匹配目标的实例HTML 标签内的单词,即
增强模式:
/(asf|foo|barr)(?=[^>]*(<|$))/
细分:
工作原理:
此模式仅在目标词不匹配时才匹配目标词紧接着是结束 HTML 尖括号。它有效地限制了 HTML 标签外部的匹配,防止其中的无意修改。
示例:
考虑以下 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. For example, when I try to replace this text:</p> <pre class="brush:php;toolbar:false"><a href="example.com" alt="yasar home page">yasar</a>
使用增强模式,目标词“yasar”将被匹配并标记,而“alt”属性内的实例锚标记的将保持不变:
<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. For example, when I try to replace this text:</p> <pre class="brush:php;toolbar:false"><a href="example.com" alt="yasar home page">yasar</a>So that yasar reads
以上是如何使用正则表达式避免在替换过程中修改 HTML 标签内的文本?的详细内容。更多信息请关注PHP中文网其他相关文章!