In [60]: re.findall('(?m)\s+(?!noreply|postmaster)(\w+)',
"""
sales@phptr.com
postmaster@phptr.com
eng@phptr.com
noreply@phptr.com
"""
)
Out[60]: ['sales', 'eng']
In [61]: re.findall('(?m)\s+',
"""
sales@phptr.com
postmaster@phptr.com
eng@phptr.com
noreply@phptr.com
"""
)
Out[61]: ['\n ', '\n ', '\n', '\n', '\n']
In [62]: re.findall('(?m)\s+(\w+)',
"""
sales@phptr.com
postmaster@phptr.com
eng@phptr.com
noreply@phptr.com
"""
)
Out[62]: ['sales', 'postmaster', 'eng', 'noreply']
为什么第一、三次的空格和换行没有匹配,而第二次的匹配了?
findall优先返回分组的内容
(\w+)
没有分组,就返回整个表达式匹配的内容~
\s+