匹配非 url 标签之外的 @ 用户
给定一个包含 url 标签和 @ 用户名的字符串,如何找出所有非 url 标签中的 @ 用户名,但不使用断言?
解决方案:
使用以下正则表达式:
@([^@[]]+)(?![^[]]*[/url])
登录后复制
分析:
- @ 匹配字符 ‘@’。
- ([^@[]] ) 捕获一段不包含 ‘@’、'[‘ 或 ‘]’ 的文本,这表示一个用户名。
- (?![^[]]*[/url]) 是一个负向先行断言,它断言前面不包含任何 url 标签结束标签 ‘[/url]’。这可确保只匹配非 url 标签中的用户名。
以上就是如何提取字符串中URL标签之外的@用户名?的详细内容,更多请关注php中文网其它相关文章!