java - 使用 posix 语法的正则表达式来验证电子邮件地址

标签 java regex

这是我们必须用于电子邮件验证的验证。

使用 posix 语法:

^[[:graph:]]\\+@[[:graph:]]\\+\\.[[:graph:]]\\+$

我已经编写了示例程序来验证,但我未能提供正确的电子邮件地址来满足 posix 语法正则表达式。请有人帮我纠正下面的 Java 示例吗?

Java 示例:

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class RegexMatches {

    public static void main(String args[]) {

      String email = "sudheer@gmail.com";
      String pattern ="^[[:graph:]]\\+@[[:graph:]]\\+\\.[[:graph:]]\\+$";
      //String pattern = ".+@.+\\.[a-z]+";// This is Working fine.

      if (!testRegex(email, pattern))
        System.out.println("Validator Exception");
      else
        System.out.println("Success");
    }

     public static boolean testRegex(String value, String regex) {
       Pattern pattern = Pattern.compile(regex);
       Matcher matcher = pattern.matcher(value);
       return matcher.matches();
    }
}

最佳答案

在java中你可以使用:

String pattern ="^\\p{Graph}+@\\p{Graph}+\\.\\p{Graph}+$";

Reference

  • 在 Java 中使用 \\p{Graph} 来表示 POSIX 中的 [[:graph:]]
  • 无需使用双转义量词+

关于java - 使用 posix 语法的正则表达式来验证电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27248815/

相关文章:

java - java中的空指针异常字符串二维数组

java - 为什么在 for 循环的迭代部分将前增量更改为后增量不会产生影响?

sql - 使用 mysql 正则表达式验证我的 google bigquery 数据库中的电子邮件地址

Java Replaceall 忽略大小写和特殊字符

java - 将文本转换为pdf时如何保留文本格式?

java - 发送电子邮件时单击按钮上的 JProgressBar 可显示进度

java - 在rest api中返回Either (Vavr)

python - scrapy - 如何使用正则表达式检索变量值

c# - 什么是用于解析单个句子的正则表达式?

regex - 在 Groovy 中查找小写单词