假设给我一个字符串,比如:
input = """
abc@gmail.com is a very nice person
xyz@gmail.com sucks
lol@gmail.com is pretty funny."""
我有一个电子邮件地址的正则表达式:^[A-z0-9\+\.]+\@[A-z0-9\+\.]+\.[A-z0-9\+]+$
目标是基于电子邮件地址正则表达式拆分字符串。 输出应为:
["is a very nice person", "sucks", "is pretty funny."]
我一直在尝试使用re.split(EMAIL_REGEX, input)
,但没有成功。
我将输出作为列表中包含的整个字符串。你知道吗
删除
^
和$
锚定,因为它们只匹配字符串的开头和结尾。因为电子邮件地址在字符串的中间,所以它们永远不会匹配。你知道吗你的regexp还有其他问题。帐户名可以包含许多其他字符,例如
_
和-
。域名可以包含-
个字符,但不能包含+
。而且您不应该使用范围A-z
来获取大写和小写字符,因为在两个字母块之间有您可能不想包含的字符(请参见ASCII Table);或者使用A-Za-z
或者使用a-z
并添加flags = re.IGNORECASE
。你知道吗您可能需要遍历这些行,然后用regex拆分每一行。 另外,regex的末尾不应该有
$
。你知道吗尝试以下操作:
输出:
'^$'
可能会把它扔掉。它只匹配以匹配正则表达式开头和结尾的字符串。你知道吗我有你想要的东西:
相关问题 更多 >
编程相关推荐