Hello! 欢迎来到小浪资源网!


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


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

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

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

正则表达式

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

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

解释

  • @:匹配一个 “@” 符号。
  • ([^@[]] ):匹配一个或多个非 “@”、”[” 或 “]” 的字符,将匹配到的内容存储在捕获组 1 中。
  • (?![^[]]*[/url]):这是一个负向前瞻,它确保匹配的文本后面没有 “[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

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

  • 张三
  • sweet
  • haha

相关阅读