首先,我不需要完整的电子邮件地址验证,我指定的任务不需要它。我只想升级当前的正则表达式代码,使其与以点结尾的地址不匹配。
我当前的代码:[0-9A-Za-z.]+[@][0-9A-Za-z.]+
它同时捕获了“ user@exampe.com
”和“ user@example.com
”。
我希望它仅从不带点的结尾字符串中捕获 。 user@exampe.com
示例字符串:
dasd.fas@fsaf.dfas.dsa
,zghs@gas.gsq
,adg32.dsa12@cas
, ksak@c.csa。, gs32.basaa@scaa.upc。
我想捕获示例中标记为代码的字符串。
编辑:我只有一行带有多个电子邮件地址,并在其后用,
和space
隔开。
答案 0 :(得分:2)
([0-9A-z.]+@(?:\.?[0-9A-z]+)+)(?=,|$)
答案 1 :(得分:2)
您可以在正则表达式后添加[0-9A-Za-z]
,以使您要在字符类中匹配的内容结尾,而句点前没有正点(?=, |$)
,该点断言后面是逗号或逗号空格或字符串的结尾。
[0-9A-Za-z.]+@[0-9A-Za-z.]+[0-9A-Za-z](?=, |$)
答案 2 :(得分:0)
答案 3 :(得分:0)
只需稍微修改一下模式即可:[0-9A-Za-z.]+[@](?:[a-zA-Z]|\.(?=[a-zA-Z]))+
。
在@
之后使用交替来匹配一个或多个:字母或点(如果后面跟着另一个字母),这要归功于前瞻性\.(?=[a-zA-Z])
。