我试图在字符串中查找关键字列表,如下所示:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
nonumy eirmod tempor <b>invidunt ut labore et dolore</b> magna aliquyam erat,
sed diam voluptua. <a href="not/replace/me/">dolore</a> ipsum erat.
...使用以下RegExp:
%\b(Lorem)\b(?=[^>]*(<(link|a)|$))%msiu
%\b(dolore)\b(?=[^>]*(<(link|a)|$))%msiu
这在最好的时候工作。但是如果字符串中的其他标签(如上例中的粗体标签)则没有找到任何内容。如果这不在里面,它可以正常工作。
我想要的结果:
<a href="myurl/to/somewhere/">Lorem</a> ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
nonumy eirmod tempor <b>invidunt ut labore et <a href="url/to/">dolore</a></b> magna aliquyam erat,
sed diam voluptua. <a href="not/replace/me/">dolore</a> ipsum erat.
目前只有在字符串中没有其他标签,如 B 或其他标签时,它才有效。但如果内置 A 或链接等标签,它也可以使用。只要字符串中有其他标签,就不会有任何替换。
我做错了什么?
感谢您的帮助!
答案 0 :(得分:0)
我想我已经解决了这个问题:
%(?i)\bMY_KEYWORD\b(?=[^<>]*(?:<\w|<\/[^link|a]|$))%msi
就我而言,它有效:)