Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式检查电子邮件ID_Java_Regex - Fatal编程技术网

Java 正则表达式检查电子邮件ID

Java 正则表达式检查电子邮件ID,java,regex,Java,Regex,我对regex不熟悉。 我正在使用正则表达式检查电子邮件ID 以下是我要将与xyz@xyz.com Pattern p = Pattern.compile("\\<(.*?)\\>"); Matcher m = p.matcher("<xyz@xyz.com>"); Pattern p=Pattern.compile(\\”; 匹配器m=p.Matcher(“”); 它工作得很好。现在我想匹配或[xyz@xyz.com]与xyz@xyz.com 任何建议都将不胜感激。

我对regex不熟悉。 我正在使用正则表达式检查电子邮件ID

以下是我要将
xyz@xyz.com

Pattern p = Pattern.compile("\\<(.*?)\\>");
Matcher m = p.matcher("<xyz@xyz.com>");
Pattern p=Pattern.compile(\\”;
匹配器m=p.Matcher(“”);
它工作得很好。现在我想匹配
[xyz@xyz.com]
xyz@xyz.com

任何建议都将不胜感激。

Pattern p=Pattern.compile(“(|\\[(.*)”);
Pattern p = Pattern.compile("(<(.*?)>|\\[(.*?)])");
Pattern p=Pattern.compile((|\\[(.*));
Pattern p=Pattern.compile(“[\\[\\]”);
匹配器m=p.Matcher(“[xyz@xyz.com]");
System.out.println(m.matches());
Pattern p=Pattern.compile(“[\\[\\]”);
匹配器m=p.Matcher(“[xyz@xyz.com]");
System.out.println(m.matches());
首先
不是正则表达式的特殊字符,因此您不必使用\

您的正则表达式应该是这样的:

”(首先
不是正则表达式的特殊字符,因此您不必使用\

您的正则表达式应该是这样的:

(使用

Pattern p=Pattern.compile(“^A-Za-z0-9-\++(\\.[A-Za-z0-9-]+)*@”+“[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$”;
Matcher m=p.Matcher(“

使用

Pattern p = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher m = p.matcher("<abc@abc.com>");
Pattern p=Pattern.compile(“^A-Za-z0-9-\++(\\.[A-Za-z0-9-]+)*@”+“[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$”;

Matcher m=p.Matcher(“

然而,这也将匹配
[foo@bar>
反之亦然。但是,这也将匹配
[foo@bar>
,反之亦然。感谢您的回答,当我尝试此代码时,我得到了他的语法错误“无效转义序列(有效的是\b\t\n\f\r\”\)”Doh!处于C模式(其中字符串前面的
@
表示您不必使用双反斜杠)。只需删除
@
并添加反斜杠即可更正。感谢您的回答。现在可以了。感谢您的回答,我在尝试此代码“无效转义序列”(有效的是\b\t\n\f\r\“\”\)时收到了他的语法错误“Doh!”处于C#模式(其中字符串前面的
@
表示不必使用双反斜杠)。只需删除
@
并添加反斜杠即可更正。谢谢您的回答。它现在可以工作了。从技术上讲,如果电子邮件地址包含
@
字符,并且
@
前后至少有1个字符,则其有效。我不是说它是现有地址,而是可能的有效地址。从技术上讲,如果电子邮件地址包含一个
@
字符,并且
@
前后至少有一个字符,那么它是有效的。我不是说它是一个现有地址,只是一个可能的有效地址。
Pattern p = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher m = p.matcher("<abc@abc.com>");