这是我的表达
(\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 测试。
你能帮帮我吗?
Redefenition:
表达式:
(\w+)@(\w+)\.name\.edu
2个字符串:
结果是获得:
name1@cs.name.edu 和 name2@cs.name.edu
根本不得包含1个部分。
答案 0 :(得分: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$
答案 1 :(得分: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])+)\])