我想剪切一串电子邮件地址,这些地址可以用逗号和空格的任意组合分隔。
我认为这很简单:
sep = re.compile('(\s*,*)+')
print sep.split("""a@b.com, c@d.com
e@f.com,,g@h.com""")
但事实并非如此。我找不到一个不会留下像这样的空槽的正则表达式:
['a@b.com', '', 'c@d.com', '', 'e@f.com', '', 'g@h.com']
我尝试了各种组合,但似乎都没有效果。事实上,这可能是正则表达式吗?
答案 0 :(得分:14)
卫生署!
就是这样。
sep = re.compile('[\s,]+')
答案 1 :(得分:3)
没有重新
line = 'e@d , f@g, 7@g'
addresses = line.split(',')
addresses = [ address.strip() for address in addresses ]
答案 2 :(得分:2)
我喜欢以下......
>>> sep= re.compile( r',*\s*' )
>>> sep.split("""a@b.com, c@d.com
e@f.com,,g@h.com""")
['a@b.com', 'c@d.com', 'e@f.com', 'g@h.com']
这似乎也适用于您的测试数据。