Java 我的正则表达式正确吗?
我已经用java编写了一个正则表达式,用于:Java 我的正则表达式正确吗?,java,regex,Java,Regex,我已经用java编写了一个正则表达式,用于: 表达式应以字母开头 后跟字母或编号或期间或@ 以abc.com或xyz.com 我试过的正则表达式: ^[A-Za-z][A-Za-z0-9@\.]*?[abcxyz]\.com$ 我认为第三种情况有问题。谁能纠正我或给我一个更好的正则表达式。提前谢谢 ^[A-Za-z][A-Za-z0-9@.]*?(?:\babc\b|\bxyz\b)\\.com$ 试试这个。[abcxyz]将只匹配一个字符,如a,b,等等 试试这个。[abcxyz]将只匹配
abc.com
或xyz.com
^[A-Za-z][A-Za-z0-9@\.]*?[abcxyz]\.com$
我认为第三种情况有问题。谁能纠正我或给我一个更好的正则表达式。提前谢谢
^[A-Za-z][A-Za-z0-9@.]*?(?:\babc\b|\bxyz\b)\\.com$
试试这个。[abcxyz]
将只匹配一个字符,如a
,b
,等等
试试这个。
[abcxyz]
将只匹配一个字符,如a
,b
等。您不需要在字符类中转义点,也可以将abc
和xyz
放在捕获或非捕获组中,并将
(逻辑或运算符)作为分隔符
^[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
您不需要在字符类中转义点,也可以将abc
和xyz
放在带有
的捕获或非捕获组中(逻辑或运算符)作为分隔符
^[A-Za-z][A-Za-z0-9@.]*?(?:abc|xyz)\.com$
^[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
可能是我错了,但我猜您希望匹配电子邮件地址,因此最好将@
放在字符类之外,以确保只有一个:
^[A-Za-z][A-Za-z0-9@.]*?(abc|xyz)\\.com$
^[A-Za-z][A-Za-z0-9.]*@[A-Za-z0-9.]*(abc|xyz)\\.com$
但是匹配电子邮件地址的正则表达式要复杂得多,请参见可能我错了,但我想您希望匹配电子邮件地址,因此最好将
@
放在字符类之外,以确保只有一个:
^[A-Za-z][A-Za-z0-9.]*@[A-Za-z0-9.]*(abc|xyz)\\.com$
但与电子邮件地址匹配的正则表达式要复杂得多,请参见@LastMind刚刚使用了OP的正则表达式。将对其进行更正。@anubhava猜想您不应该删除您的答案…您遗漏了一些要点:PNo如果我发现我的答案与已发布的答案重复,我总是删除我的答案,并对现有答案进行更新投票。而且几乎每天我都会跨越每日代表人数限制,所以两次投票都没什么大不了的:)@anubhava值得期待:)@LastMind刚刚用了OP的正则表达式。会纠正它的。thanx.@anubhava猜你不应该删除你的答案……你错过了一些布朗尼点:PNo如果我发现答案重复,我总是删除我的答案对已发布的答案进行更新,并对现有答案进行更新投票。而且几乎每天我都会跨越每日代表限制,所以两次向上投票也没什么关系:)@anubhava值得期待:)感谢添加\,没有看到java标记,所以我使用了简单的正则表达式表示法:)非常感谢:)感谢添加\,没有看到java标记,所以我使用了简单的正则表达式表示法:)非常感谢:)
[A-Za-z0-9@]*?
这部分看起来可疑。您正在尝试匹配电子邮件地址吗?您正在尝试验证电子邮件地址吗?不要。在这里寻找一个能捕获大多数有效地址的正则表达式:[a-Za-z0-9@\.]*?
这部分看起来可疑。您正在尝试匹配电子邮件地址吗?您正在尝试验证电子邮件地址吗?不要。在这里查找一个正则表达式,它捕获大多数有效地址: