>im 试图在这样的字符串中查找关键字列表:
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.
。具有以下正则表达式:
%'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 或链接这样的标签在里面,它也可以工作。只是如果字符串内有其他标签,则不会替换任何内容。
我做错了什么?
感谢您的帮助!
我想我已经解决了:
%(?i)'bMY_KEYWORD'b(?=[^<>]*(?:<'w|<'/[^link|a]|$))%msi
就我而言,它可以:)