Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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.util.regex.PatternSyntaxException:索引12附近的非法重复_Java_Regex_Email Validation - Fatal编程技术网

java.util.regex.PatternSyntaxException:索引12附近的非法重复

java.util.regex.PatternSyntaxException:索引12附近的非法重复,java,regex,email-validation,Java,Regex,Email Validation,我对regEx不熟悉。我需要使用java验证电子邮件。我已经通过硬编码域名创建了用于电子邮件验证的正则表达式。但是域名应该是动态的。我已将域名作为参数传递。但我不知道如何在正则表达式中传递参数 但是我尝试了这段代码,然后得到了错误“java.util.regex.PatternSyntaxException:索引12附近的非法重复”。我遵循了一些答案,但对我没有帮助。从这些答案中,我理解了重复量词。你能告诉我我在这里遗漏了什么以及如何解决这个问题吗 public static boolean v

我对regEx不熟悉。我需要使用java验证电子邮件。我已经通过硬编码域名创建了用于电子邮件验证的正则表达式。但是域名应该是动态的。我已将域名作为参数传递。但我不知道如何在正则表达式中传递参数

但是我尝试了这段代码,然后得到了错误“java.util.regex.PatternSyntaxException:索引12附近的非法重复”。我遵循了一些答案,但对我没有帮助。从这些答案中,我理解了重复量词。你能告诉我我在这里遗漏了什么以及如何解决这个问题吗

public static boolean validateEmail(String email, String domainName) {
      pattern = Pattern.compile("^([\\w-\\.]+)@ {"+ domainName +"}" , Pattern.CASE_INSENSITIVE);
    matcher = pattern.matcher(email);
    return matcher.matches();
  }




{
}
在regex中有意义,即指定字符重复之前的频率。例如,
a{5}
匹配
aaaaa

如果您想在正则表达式中使用大括号,应该像
\\{
\\}
那样对它们进行转义


但这并不是将其作为参数传递所需的,此时它将只是文本。如果您只想匹配这个文本域,那么可以执行
Pattern.compile(“^([\\w-\\.]+)@”+域名,Pattern.Pattern不区分大小写)

{
}
在regex中有意义,即用于指定字符重复之前的频率。例如,
a{5}
匹配
aaaaa

如果您想在正则表达式中使用大括号,应该像
\\{
\\}
那样对它们进行转义


但这并不是将其作为参数传递所需的,此时它将只是文本。如果您只想匹配该文本域,您可以执行
Pattern.compile(“^([\\w-\\.]+)@”+域名,Pattern.Pattern不区分大小写)

您可以使用另一个问题的解决方案:Best的可能重复可能是首先验证您是否有语法正确的电子邮件地址(这很难正确,尤其是使用正则表达式),然后检查它是否以
@domainName
@didiier L结尾,我已经通过硬编码域名来验证,比如“`^([\\w-\\.]+)@(example.com | example.uk | example.co.in | example.edu.in)$。由于我是regEx新手,我不知道如何在regEx中传递参数。现在我学习并修复了。感谢Didier L和@Madina Saidova的帮助。您可以使用另一个问题的解决方案:Best的可能副本可能是首先验证您是否有语法正确的电子邮件地址(这很难正确,尤其是使用正则表达式),然后检查它是否以
@domainName
@didiier L结尾,我已经通过硬编码域名来验证,比如“`^([\\w-\\.]+)@(example.com | example.uk | example.co.in | example.edu.in)$。由于我是正则表达式新手,我不知道如何在正则表达式中传递参数。现在我学习并修复了。感谢Didier L和@Madina Saidova的帮助。