我试图在字符串中找到一些不在链接锚点中的单词(或表达式:像两个单词((字符串包含html代码,通常是utf-8编码(。计划是在那之后用一些链接替换这些词。
我不太擅长正则表达式,我搜索了网络和堆栈溢出,发现了两种对我有帮助的正则表达式模式,但它们中的每一个都有一个问题。我希望有人能帮助我结合这两个例子来得到一个好的例子。
第一种模式:/('.$tag.')(?![^<]*<'/a>)/is
这种模式,找到单词,但如果通过示例我试图在字符串中找到"express":
In computing, a regular expression provides a concise and flexible means...
..我不希望找到匹配项,但是在"表达式"一词中找到匹配项。
第二种模式:''(?!((<.*?)|(<a.*?)))('b'.$tag.''b)(?!(([^<>]*?)>)|([^>]*?</a>))''is
这种模式没有上一个问题,但是如果单词或表达式,我试图找到最后一个字符作为特殊的 utf-8 字符,那么我没有得到匹配。
示例词:apă
示例字符串:...care transformă umiditatea din aer în apă potabilă. Dacă iniţial a fost creată pentru situaţia ţărilor...
假设第二个正则表达式适合您(我还没有测试过它,我真的认为您不应该对此类事情使用正则表达式(,您需要做的就是添加一个u
修饰符,如@hakre所说:
''(?!((<.*?)|(<a.*?)))('b'.$tag.''b)(?!(([^<>]*?)>)|([^>]*?</a>))''isu
就个人而言,我会使用DOMDocument来完成这项任务。