Java 正则表达式检查电子邮件ID
我对regex不熟悉。 我正在使用正则表达式检查电子邮件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 任何建议都将不胜感激。
与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>");