-10

我有一些代码:

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;
}

在这种模式下是^((?:(?:(?:什么意思?字符意味着否定(全部没有)但其他字符((?:(?:(?:^

4

1 回答 1

3

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

^它位于方括号之外时,并不意味着否定。这意味着从字符串的开头匹配。

于 2013-10-22T08:58:39.050 回答