【问题标题】:What do the characters ((?:(?:(?: mean in pattern-matching? [duplicate]字符 ((?:(?:(?:) 在模式匹配中是什么意思?[重复]
【发布时间】:2013-10-31 01:18:50
【问题描述】:

我有一些代码:

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 regex


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 2023-03-10
    相关资源
    最近更新 更多