有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何删除点(.)使用正则表达式的电子邮件地址中的字符

我有一个类似n.abc@abc-xyz.de的电子邮件地址,我想出了一个简单的模式,如:

String reglarEx="^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])$"

我的要求是不允许在@符号之前使用dot(.)运算符,或者整个电子邮件只包含一个点运算符


共 (1) 个答案

  1. # 1 楼答案

    您可以使用此正则表达式:

    String reglarEx = "^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])$";
    

    或缩短:

    String reglarEx = "^[\\w!#$%&'*+/=?^`{|}~-]+@(\\p{Alnum}(\\p{Alnum}*\\p{Alnum})?\\.)+\\p{Alnum}(\\p{Alnum}*\\p{Alnum})$";
    

    尽管整个电子邮件只包含一个点运算符,但由于电子邮件也可以是name@google.co.uk,这似乎不是正确的要求