Python正则表达式通过两个分隔符之一拆分字符串

时间:2009-03-06 11:36:13

标签: python regex

我想剪切一串电子邮件地址,这些地址可以用逗号和空格的任意组合分隔。

我认为这很简单:

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']

我尝试了各种组合,但似乎都没有效果。事实上,这可能是正则表达式吗?

3 个答案:

答案 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']

这似乎也适用于您的测试数据。