字符串:[url=/space/4]@张三[/url] [url=/space/5]@李 四[/url] @张三 @张三 [url=/space/6]@王五[/url] [url=/space/7]@赵六[/url] [url=/space/8]@wolegequ[/url]@sweet @haha
要求,只匹配非[url]标签之外的@用户
即:张三, sweet,haha
不能用断言
字符串:[url=/space/4]@张三[/url] [url=/space/5]@李 四[/url] @张三 @张三 [url=/space/6]@王五[/url] [url=/space/7]@赵六[/url] [url=/space/8]@wolegequ[/url]@sweet @haha
要求,只匹配非[url]标签之外的@用户
即:张三, sweet,haha
不能用断言
你可以使用正则表达式的“负向后视断言”,你试试这个:(?<!\[/url\])@\w+
import re
text = "[url=/space/4]@张三[/url] [url=/space/5]@李 四[/url] @张三 @张三 [url=/space/6]@王五[/url] [url=/space/7]@赵六[/url] [url=/space/8]@wolegequ[/url]@sweet @haha"
pattern = r'(?<!\[/url\])@\w+'
matches = re.findall(pattern, text)
print(matches) # 输出: ['@张三', '@张三', '@sweet', '@haha']
4 回答13.2k 阅读✓ 已解决
5 回答7.7k 阅读✓ 已解决
2 回答10.4k 阅读✓ 已解决
3 回答3k 阅读✓ 已解决
5 回答2.1k 阅读
1 回答1.5k 阅读✓ 已解决
1 回答950 阅读✓ 已解决
@([^@\[\]]+)(?![^\[\]]*\[\/url\])