我的regEx是否正确?
问题描述:
我已经用Java编写的正则表达式为:我的regEx是否正确?
- 表达应该以
letter
开始。 - 其次
letter
或number
或period
或@
- 结束与
abc.com
或xyz.com
正则表达式我想:
^[A-Za-z][[email protected]\.]*?[abcxyz]\.com$
我认为这是在第3个条件的一些问题。有人可以纠正我或为我提供更好的regEx。提前致谢。
答
你不需要逃脱字符类中的点,也把abc
和xyz
捕获或无捕获组内部进行|
(逻辑或运营商)作为分离器。
^[A-Za-z][[email protected]]*?(?:abc|xyz)\.com$
Java的正则表达式将是
^[A-Za-z][[email protected]]*?(?:abc|xyz)\\.com$
[abcxyz]
在您的正则表达式匹配从给定的列表中的一个字符。也就是说,它会匹配a
或b
或c
或x
或y
或z
答
^[A-Za-z][[email protected]]*?(abc|xyz)\\.com$
+0
谢谢你添加\,没有看到java标记,所以我用简单的正则表达式符号:)非常感谢:) – Beri 2014-10-20 06:52:53
答
可能是我错了,但我猜你想匹配的电子邮件地址,所以最好把外面的@
字符类,以确保只有一个:
^[A-Za-z][A-Za-z0-9.]*@[A-Za-z0-9.]*(abc|xyz)\\.com$
但是相匹配的电子邮件地址是一个正则表达式复杂得多,见this
'[A-Za-z0-9 @ \] *?'这部分看起来很腥。你想匹配一个电子邮件地址吗? – nhahtdh 2014-10-20 07:12:24
你想验证电子邮件地址吗?别。看看这里的正则表达式捕获大多数有效的地址:http://*.com/a/719543/1436981 – stuXnet 2014-10-20 07:38:18