正则表达式导致逻辑错误

时间:2015-03-26 16:04:25

标签: java regex

private final String reg2 = "[A-Z][A-Za-z0-9_]+@[a-z]+[.com|.net][.sg|.cn|.au]?";

这行代码应该是电子邮件测试人员的正则表达式。我用来测试它的当前电子邮件是Kenny@gmail.com(当然是虚构的)。但是,它似乎总是错误的。我该如何更改?

1 个答案:

答案 0 :(得分:3)

这是错误的,因为您使用的是字符类而不是替代组。

(\.com|\.net) - 这是正确的。

经过一次小的改进(see demo here)后,你的正则表达式可以匹配“Kenny@gmail.com”:

[A-Z][A-Za-z0-9_]+@[a-z]+(?:\.com|\.net)(?:\.sg|\.cn|\.au)?

详情请见alternative lists herecharacter classes here