Java 字符((?:(?:)在模式匹配中是什么意思?

Java 字符((?:(?:)在模式匹配中是什么意思?,java,regex,Java,Regex,我有一些代码: import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; private boolean validateEmail(...) Pattern p = Pattern.compile("^((?:(?:(?:[a-zA-Z0-9][\\.\\-\\+_]?)*)[a-zA-Z0-9])+)\\@((?:(?:(?:[a-

我有一些代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;

private boolean validateEmail(...)

Pattern p = Pattern.compile("^((?:(?:(?:[a-zA-Z0-9][\\.\\-\\+_]?)*)[a-zA-Z0-9])+)\\@((?:(?:(?:[a-zA-Z0-9][\\.\\-_]?){0,62})[a-zA-Z0-9])+)\\.([a-zA-Z0-9]{2,6})$");

Matcher m = p.matcher(fieldValue);
boolean matches = m.matches();

if (!matches) {    
// show not valid msg...
}
return matches;
}
在这种模式中,
^((?:(?:(?:)和
)是什么意思?
^
字符表示否定(全部不带),但其他字符?

(?:…)
表示非捕获组。
?:
用于对表达式进行分组,但要避免将其作为字符串的匹配/捕获部分返回


^
当它位于方形面包圈外时,并不意味着否定。它意味着从字符串的开头开始匹配。

它们的意思是什么?这里有两个java正则表达式教程让你开始学习:它们是微笑-这是正则表达式向你表示同情的方式。更明确地说,它们是讽刺的微笑。