繁体   English   中英

PHP RegEx匹配文本不在锚标签中

[英]PHP RegEx Match Text NOT in Anchor Tag

正则表达式有点烦人,但我正在尝试学习。

我在preg_replace中使用了一个正则表达式,以匹配字符串并将其替换为html链接。 它可以正确避免匹配项位于锚标记内,除非锚标记中也有一个子标记。

这是(更新的)模式:

/(?!(?:[^<]+>|[^>]+<\/a>))\b(Match Me)\b/is

和一些示例文本:

<a href="#">Don't Match Me <span>web</span></a>
<a href="#">Don't Match Me</a>
Match Me
<span>Match Me</span>

上面的正则表达式将匹配第一行,第三行和第四行上的文本。 但是,我只想在第三行和第四行匹配文本“匹配我”。

注意:我要筛选的内容不是像示例中那样用行整齐地分隔开的。 实际上,这是一段文字。

我愿意使用DOM,但是我要花大量的内容,并使用preg_replace的数组功能应用多个替换项,如下所示:

preg_replace($searchFor, $linkArray, $content);

其中$ searchFor和$ linkArray都是多维数组,其对应的键分别保存模式和替换html。

任何帮助表示赞赏!

正则表达式有点烦人,但我正在尝试学习。

我在preg_replace中使用了一个正则表达式,以匹配字符串并将其替换为html链接。 它可以正确避免匹配项位于锚标记内,除非锚标记中也有一个子标记。

这是(更新的)模式:

/(?!(?:[^<]+>|[^>]+<\/a>))\b(Match Me)\b/is

和一些示例文本:

<a href="#">Don't Match Me <span>web</span></a>
<a href="#">Don't Match Me</a>
Match Me
<span>Match Me</span>

上面的正则表达式将匹配第一行,第三行和第四行上的文本。 但是,我只想在第三行和第四行匹配文本“匹配我”。

注意:我要筛选的内容不是像示例中那样用行整齐地分隔开的。 实际上,这是一段文字。

我愿意使用DOM,但是我要花大量的内容,并使用preg_replace的数组功能应用多个替换项,如下所示:

preg_replace($searchFor, $linkArray, $content);

其中$ searchFor和$ linkArray都是多维数组,其对应的键分别保存模式和替换html。

任何帮助表示赞赏!

正则表达式有点烦人,但我正在尝试学习。

我在preg_replace中使用了一个正则表达式,以匹配字符串并将其替换为html链接。 它可以正确避免匹配项位于锚标记内,除非锚标记中也有一个子标记。

这是(更新的)模式:

/(?!(?:[^<]+>|[^>]+<\/a>))\b(Match Me)\b/is

和一些示例文本:

<a href="#">Don't Match Me <span>web</span></a>
<a href="#">Don't Match Me</a>
Match Me
<span>Match Me</span>

上面的正则表达式将匹配第一行,第三行和第四行上的文本。 但是,我只想在第三行和第四行匹配文本“匹配我”。

注意:我要筛选的内容不是像示例中那样用行整齐地分隔开的。 实际上,这是一段文字。

我愿意使用DOM,但是我要花大量的内容,并使用preg_replace的数组功能应用多个替换项,如下所示:

preg_replace($searchFor, $linkArray, $content);

其中$ searchFor和$ linkArray都是多维数组,其对应的键分别保存模式和替换html。

任何帮助表示赞赏!

正则表达式有点烦人,但我正在尝试学习。

我在preg_replace中使用了一个正则表达式,以匹配字符串并将其替换为html链接。 它可以正确避免匹配项位于锚标记内,除非锚标记中也有一个子标记。

这是(更新的)模式:

/(?!(?:[^<]+>|[^>]+<\/a>))\b(Match Me)\b/is

和一些示例文本:

<a href="#">Don't Match Me <span>web</span></a>
<a href="#">Don't Match Me</a>
Match Me
<span>Match Me</span>

上面的正则表达式将匹配第一行,第三行和第四行上的文本。 但是,我只想在第三行和第四行匹配文本“匹配我”。

注意:我要筛选的内容不是像示例中那样用行整齐地分隔开的。 实际上,这是一段文字。

我愿意使用DOM,但是我要花大量的内容,并使用preg_replace的数组功能应用多个替换项,如下所示:

preg_replace($searchFor, $linkArray, $content);

其中$ searchFor和$ linkArray都是多维数组,其对应的键分别保存模式和替换html。

任何帮助表示赞赏!

正则表达式有点烦人,但我正在尝试学习。

我在preg_replace中使用了一个正则表达式,以匹配字符串并将其替换为html链接。 它可以正确避免匹配项位于锚标记内,除非锚标记中也有一个子标记。

这是(更新的)模式:

/(?!(?:[^<]+>|[^>]+<\/a>))\b(Match Me)\b/is

和一些示例文本:

<a href="#">Don't Match Me <span>web</span></a>
<a href="#">Don't Match Me</a>
Match Me
<span>Match Me</span>

上面的正则表达式将匹配第一行,第三行和第四行上的文本。 但是,我只想在第三行和第四行匹配文本“匹配我”。

注意:我要筛选的内容不是像示例中那样用行整齐地分隔开的。 实际上,这是一段文字。

我愿意使用DOM,但是我要花大量的内容,并使用preg_replace的数组功能应用多个替换项,如下所示:

preg_replace($searchFor, $linkArray, $content);

其中$ searchFor和$ linkArray都是多维数组,其对应的键分别保存模式和替换html。

任何帮助表示赞赏!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM