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]将只匹配

我已经用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]
    将只匹配一个字符,如
    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@\.]*?
    这部分看起来可疑。您正在尝试匹配电子邮件地址吗?您正在尝试验证电子邮件地址吗?不要。在这里查找一个正则表达式,它捕获大多数有效地址: