我正在使用 python,并且有一串电子邮件地址,如下所示。
email_addr = 'test@domain.com, test1@domain.com, test2@domain.com'
Run Code Online (Sandbox Code Playgroud)
上面的字符串看起来不错,但是有时我收到的数据中包含空白电子邮件地址。
例如
email_addr = ' , , test@domain.com, test1@domain.com, , , ,test2@domain.com
Run Code Online (Sandbox Code Playgroud)
我正在使用str.split(',')并检查很多错误。想知道是否有更好的方法来做到这一点?
我期望的最终值:
email_addr = ' , , test@domain.com, test1@domain.com, , , ,test2@domain.com
Run Code Online (Sandbox Code Playgroud)
到:
email_addr = 'test@domain.com,test1@domain.com,test2@domain.com'
Run Code Online (Sandbox Code Playgroud)
不需要正则表达式。用于.split(',')拆分为字符串列表。
email_lst = email_addr.split(',')
Run Code Online (Sandbox Code Playgroud)
然后用逗号连接,但过滤掉空白值
email_addr2 = ",".join(e.strip() for e in email_lst if e.strip())
# 'test@domain.com,test1@domain.com,test2@domain.com'
Run Code Online (Sandbox Code Playgroud)
在 Python 3.8+ 中,您可以使用 walrus 运算符来避免调用.strip()两次:
email_addr2 = ",".join(e for ee in email_lst if (e := ee.strip()))
Run Code Online (Sandbox Code Playgroud)