Php 如何用preg_replace替换单词而不重复?

Php 如何用preg_replace替换单词而不重复?,php,regex,Php,Regex,我想创建一个PHP函数,用内部链接替换文本中的某些单词。到目前为止,这是可行的,但如果我有两个匹配项,我最终会得到无效的HTML代码 例如: Welpen /hunde Chihuahua Welpen /hunde,chihuahua 出现此问题,因为替换函数将再次从文本开头开始搜索下一个单词。相反,它应该在文本中继续 我的目标是,每当在一个充满关键字的表格中发现相关单词时,就插入到我的网站文本的内部链接。例如,将小猎犬welpen替换为。如果单词wel

我想创建一个PHP函数,用内部链接替换文本中的某些单词。到目前为止,这是可行的,但如果我有两个匹配项,我最终会得到无效的HTML代码

例如:

Welpen /hunde Chihuahua Welpen /hunde,chihuahua 出现此问题,因为替换函数将再次从文本开头开始搜索下一个单词。相反,它应该在文本中继续


我的目标是,每当在一个充满关键字的表格中发现相关单词时,就插入到我的网站文本的内部链接。例如,将小猎犬welpen替换为。如果单词welpen也在表中,它将打断html代码并再次插入href标记。

不要使用循环,而是构造一个正则表达式,并在一次过程中修改整个文档。也就是说,代替这些正则表达式:

~\b(foo)\b~i
~\b(bar)\b~i
~\b(baz)\b~i
只使用这个:

~\b(foo|bar|baz)\b~i
您可能想看看如何使用构造正则表达式


您还需要注意在正则表达式中具有特殊含义的字符。您可能会发现这很有用。

不要使用循环,而是构造一个正则表达式,并在一次过程中修改整个文档。也就是说,代替这些正则表达式:

~\b(foo)\b~i
~\b(bar)\b~i
~\b(baz)\b~i
只使用这个:

~\b(foo|bar|baz)\b~i
您可能想看看如何使用构造正则表达式


您还需要注意在正则表达式中具有特殊含义的字符。您可能会发现这很有用。

别忘了。嗨,谢谢您的帮助。你的建议在我的例子中可能行不通。请看我上面的传统解释。我需要循环浏览数百个可能的单词和替换词。别忘了。嗨,谢谢你的帮助。你的建议在我的例子中可能行不通。请看我上面的传统解释。我需要循环浏览数百个可能的单词和替换词。
~\b(foo|bar|baz)\b~i