我一直在寻找解决我遇到的正则表达式难题的问题。
最近,我从事一个项目,我们需要用锚标签列表替换给定文本中的单词列表。
例如,给定一个字符串
This is a test string
我可能想将“测试”一词替换为
<a target="_blank" href="https://website.com/string-random“>test</a>.
结果字符串应如下所示
This is a <a target="_blank" href="https://website.com/string-random“>test</a> string
单词的替换是循环完成的
foreach ($documents as $document)
foreach ($links as $link)
replace keywords
在某些情况下最终会发生的是锚标记中的一些 url 包含可能被替换的单词
例如,给定这个要替换的单词列表
[
{
'keyword': 'test',
'link': 'https://website.com/string-random'
},
{
'keyword': 'string',
'link': 'https://random.com/string'
}
]
完成所有替换后,我上面给出的示例字符串将如下所示
This is a <a target="_blank" href="https://website.com/<a target="_blank" href="https://random.com/string“>string</a>-random“>test</a> <a target="_blank" href="https://random.com/string“>string</a>
代替
This is a <a target="_blank" href="https://website.com/string-random“>test</a> <a target="_blank" href="https://random.com/string“>string</a>
目前,我正在寻找一个与特殊字符包围的任何单词都不匹配的正则表达式,因为我认为这可以解决我的问题。
对于如何解决这个问题的任何其他想法也非常开放
斯蒂芬大帝
SMILET
慕勒3428872