PHP前端开发

如何用正则表达式匹配字符串中未被[url]标签包围的用户名?

百变鹏仔 3天前 #PHP
文章标签 字符串

常规正则匹配非标签内用户名

你有一个字符串,包含多个被 [url] 标签包围的用户名,以及一些未被标签包围的用户名。你的目标是只匹配那些未被标签包围的用户名。

正则表达式

为了解决这个问题,你可以使用以下正则表达式:

@([^@[]]+)(?![^[]]*[/url])

解释

示例

对于给定的字符串:

[url=/space/4]@张三[/url] [url=/space/5]@李 四[/url] @张三 @张三 [url=/space/6]@王五[/url] [url=/space/7]@赵六[/url] [url=/space/8]@wolegequ[/url]@sweet @haha

正则表达式将匹配以下结果: