我有一些代码:
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;
}
^((?:(?:(?:
和((?:(?:(?:
在该模式中的含义是什么?
^
字符表示否定(全部没有)但是其他字符?
答案 0 :(得分:3)
(?:...)
表示非捕获组。如果要对表达式进行分组,则使用?:
,但是要避免将其作为字符串的匹配/捕获部分返回。
^
并不意味着当它位于方形外壳之外时会被否定。它表示从字符串的开头匹配。