使用 Regex 查找未被 BBcode 包围的字符串
我需要一个正则表达式来查找和替换字符串中的单词/短语(仅当它不在 [url] BBcode 中时)。
$string = "Word [url='http://domain.com']Word test[/url]";
正则表达式不应该对“Word test”执行任何操作,而只能对“Word”的第一次出现执行任何操作。
编辑:更具体地说,这是一个论坛软件的插件,用于监视提及艺术家的消息。如果发生这种情况,艺术家的姓名将被替换为有关该艺术家的线程的 URL,除非它还不是 URL 的一部分(无论是在链接本身还是在描述中)。经过再三考虑,如果在任何非纯标记(b、i、u、颜色、列表等)的标签中使用它,则不应触发它。因此,如果有一个简单的方法来定义哪些标签可以被替换,那就太棒了!
提前致谢!
I am in need of a regular expression that will find, and replace, a word/phrase in a string only if it's not in an [url] BBcode.
$string = "Word [url='http://domain.com']Word test[/url]";
The regex should not do anything with "Word test", only the first occurrence of "Word".
EDIT: To be more specific, this is an addon for a forum software that monitors the messages for mentions of artists. If one occur, the artist's name is replaced with an URL to a thread about that artist, unless it's not already part of an URL (either in the link itself or the desc). After a second thought, it shouldn't be triggered if it's used in any tags that isn't pure markup (b,i,u,color,lists, etc). So an easy way to define what tags can be in to be replaced would be brilliant!
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
结果:
result: