我试图在Java中为电子邮件地址创建一个Regex表达式而且我被卡住了。当我使用一些在线Regex测试仪时,它工作正常,但在Java中它似乎并不想工作。
这是我的表达:
[a-zA-Z!$.&\\d]{4,24}[@][a-zA-Z]{2,}[.edu|.com|.net]
应该是:
无法弄清楚我做错了什么。
即使我使用简单的电子邮件测试它,例如" test@school.edu"它不匹配。
答案 0 :(得分:3)
您可以使用|
或
(?:\.edu|\.com|\.net)
或者@Bohemian评论你可以把这个simpeler写成\.(?:edu|com|net)
目前您正在使用character class [.edu|.com|.net]
答案 1 :(得分:0)
您的正则表达式中有一些错误。
\\d
也会验证抄送号码,例如:پنج
或شش
。所以你应该使用[0-9]。@
左右的大括号。.edu|.com|.net
必须在圆括号中。 (.edu|.com|.net)
。因为它不是一组字符,所以它是一个严格的表达式。点也可以放在括号内。 \.(edu|com|net)
。
^
和$
以验证总字符串。所以你的正则表达式将是:
^[a-zA-Z!$.&0-9]{4,24}@[a-zA-Z]{2,}\.(edu|com|net)$