0

这是我的表情

(\w+\.)*\w+\s*(@|\({1}\s*at\s*\){1}|\s+at\s+){1}\s*(\S{2,3}\.)?(\w+)(\s*dot\s*|\s*\.*\s*)(com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum|ru)\b

l@ombe@cs.name.edu给出ombe@cs.name.edu这是错误的

我需要从可能的变体中排除l@ombe@cs.name.edu

作为我家庭作业的一部分,我开发了这个正则表达式来从各种混淆字符串中提取电子邮件,而不是进行验证。坚持l@ombe@cs.name.edu测试。

你能帮帮我吗?

重新定义:

表达:

(\w+)@(\w+)\.name\.edu

2个字符串:

  • name@name1@cs.name.edu
  • name2@cs.name.edu

结果得到:

name1@cs.name.eduname2@cs.name.edu

1部分根本不能包括在内。

4

2 回答 2

0

您可以使用 ^ 和 $ 将正则表达式锚定到字符串的开头和结尾。这会强制匹配整个字符串,而不是仅匹配其中的一部分。

在你的情况下:

^(\w+\.)*\w+\s*(@|\({1}\s*at\s*\){1}|\s+at\s+){1}\s*(\S{2,3}\.)?(\w+)(\s*dot\s*|\s*\.*\s*)(com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum|ru)\b$
于 2012-04-17T11:35:28.977 回答
0

RFC 2822

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/ =?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\ [\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0 -9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0- 5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0 -4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\ x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
于 2012-04-17T11:56:55.033 回答