我在java中编写了一个regEx:
letter
开头。 letter
或number
或period
或@
abc.com
或xyz.com
我试用的正则表达式:
^[A-Za-z][A-Za-z0-9@\.]*?[abcxyz]\.com$
我认为第三种情况存在一些问题。有人可以纠正我或给我一个更好的regEx。提前谢谢。
答案 0 :(得分:4)
您不需要转义字符类中的点,并将abc
和xyz
放入捕获或非捕获组|
(逻辑OR运算符)作为分隔符。
^[A-Za-z][A-Za-z0-9@.]*?(?:abc|xyz)\.com$
Java正则表达式,
^[A-Za-z][A-Za-z0-9@.]*?(?:abc|xyz)\\.com$
你的正则表达式中的 [abcxyz]
匹配给定列表中的单个字符。也就是说,它会匹配a
或b
或c
或x
或y
或z
答案 1 :(得分:3)
^[A-Za-z][A-Za-z0-9@.]*?(?:\babc\b|\bxyz\b)\\.com$
试试这个。[abcxyz]
只匹配1个字符,例如a
,b
等。
答案 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$