一行中多个电子邮件地址的正则表达式
Regex for multiple email addresses in one line
我目前有这个正则表达式:
/\w+@\w+\.\w+/
它非常适合像这样的字符串:
foo@bar.com, bar@foo.com, far@boo.com
但是,它不适用于在“@”前后有两个句点的电子邮件,例如:
foo.bar@bar.edu.fr
如何修改正则表达式以使其也适用于第二个字符串?
谢谢! :)
这并不奇怪,因为您已经在正则表达式中硬编码了一个句点。使用 \S+
匹配任何非空白字符:
>>> re.findall(r"\S+@\S+", "foo.bar@bar.edu.fr")
['foo.bar@bar.edu.fr']
使用字符 class 代替 \w
并在其中添加 .
。像这样:
/^[a-zA-Z0-9_.]+@[a-zA-Z0-9_.]+$/
Online Demo
我目前有这个正则表达式:
/\w+@\w+\.\w+/
它非常适合像这样的字符串:
foo@bar.com, bar@foo.com, far@boo.com
但是,它不适用于在“@”前后有两个句点的电子邮件,例如:
foo.bar@bar.edu.fr
如何修改正则表达式以使其也适用于第二个字符串?
谢谢! :)
这并不奇怪,因为您已经在正则表达式中硬编码了一个句点。使用 \S+
匹配任何非空白字符:
>>> re.findall(r"\S+@\S+", "foo.bar@bar.edu.fr")
['foo.bar@bar.edu.fr']
使用字符 class 代替 \w
并在其中添加 .
。像这样:
/^[a-zA-Z0-9_.]+@[a-zA-Z0-9_.]+$/