字符 ((?:(?:(?:) 在模式匹配中是啥意思?[重复]

Posted

技术标签:

【中文标题】字符 ((?:(?:(?:) 在模式匹配中是啥意思?[重复]【英文标题】: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;

^((?:(?:(?:((?:(?:(?: 在该模式中是什么意思? ^ 字符表示否定(全部没有)但其他字符?

【问题讨论】:

the documentation 告诉你他们的意思是什么? 这里有几个 Java 正则表达式教程让你开始:vogella.com/articles/JavaRegularExpressions/article.htmldocs.oracle.com/javase/1.4.2/docs/api/java/util/regex/… 他们在微笑——这就是正则表达式表达对你的同情的方式。 更明确地说,它们是讽刺的微笑。 【参考方案1】:

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

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

【讨论】:

以上是关于字符 ((?:(?:(?:) 在模式匹配中是啥意思?[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java正则表达式中是啥意思

(*var)[n] 在 C++ 中是啥意思

共享模式在共享访问中是啥意思?

正则表达式模式“[\\PL]+”在 Java 中是啥意思? [复制]

!+(不是加字符串)在 JavaScript 中是啥意思? [复制]

@produces在spring mvc中是啥意思