Python正则负向零宽断言不能贪婪匹配
从字符串中提取@用户名,假设字符串中混有email,并且@用户名之间没有空格就无法使用单词边界
# -*- coding:utf-8 -*-
import regex
m = 'a@bc.com t@abc-inc.com @编程 @python@coding'
p = regex.findall(r'@[\u4e00-\u9fa5\w]+(?![\.-])', m)
print(p)
我尝试用了负向零宽断言,但是匹配结果是
[‘@b’, ‘@ab’, ‘@编程’, ‘@python’, ‘@coding’]
前两项不应该匹配,如何解决?我看了python如果用了负向零宽断言就不能贪婪匹配
前两项应该匹配!因为后面并没有
[.-]