我的注册表是否正确?

时间:2014-10-20 06:45:35

标签: java regex

我在java中编写了一个regEx:

  1. 表达式应以letter开头。
  2. 后跟letternumberperiod@
  3. abc.comxyz.com
  4. 结束

    我试用的正则表达式:

    ^[A-Za-z][A-Za-z0-9@\.]*?[abcxyz]\.com$
    

    我认为第三种情况存在一些问题。有人可以纠正我或给我一个更好的regEx。提前谢谢。

4 个答案:

答案 0 :(得分:4)

您不需要转义字符类中的点,并将abcxyz放入捕获或非捕获组|逻辑OR运算符)作为分隔符。

^[A-Za-z][A-Za-z0-9@.]*?(?:abc|xyz)\.com$

Java正则表达式,

^[A-Za-z][A-Za-z0-9@.]*?(?:abc|xyz)\\.com$
你的正则表达式中的

[abcxyz]匹配给定列表中的单个字符。也就是说,它会匹配abcxyz

答案 1 :(得分:3)

^[A-Za-z][A-Za-z0-9@.]*?(?:\babc\b|\bxyz\b)\\.com$

试试这个。[abcxyz]只匹配1个字符,例如ab等。

答案 2 :(得分:1)

可能我错了,但我想你想要匹配一个电子邮件地址,所以最好把@放在角色类之外,以确保只有一个:< / p>

^[A-Za-z][A-Za-z0-9.]*@[A-Za-z0-9.]*(abc|xyz)\\.com$

但匹配电子邮件地址的正则表达式要复杂得多,请参阅this

答案 3 :(得分:0)

^[A-Za-z][A-Za-z0-9@.]*?(abc|xyz)\\.com$
相关问题