正则表达式java中方括号外的Charat运算符

正则表达式java中方括号外的Charat运算符,java,regex,Java,Regex,我有三种模式 Pattern pattern = Pattern.compile("[a-f]"); // Pattern 1 //Pattern pattern = Pattern.compile("[^a-f]");// Pattern 2 //Pattern pattern = Pattern.compile("^[a-f]");// Pattern 3 Matcher matcher = pattern.matcher("acdefghijklmn"); while(matcher.f

我有三种模式

Pattern pattern = Pattern.compile("[a-f]"); // Pattern 1
//Pattern pattern = Pattern.compile("[^a-f]");// Pattern 2
//Pattern pattern = Pattern.compile("^[a-f]");// Pattern 3

Matcher matcher = pattern.matcher("acdefghijklmn");
while(matcher.find()) {
    System.out.print(matcher.start() + " ");
}
结果:
模式1-0 1 2 3 4
模式2-56778910112
模式3-0

我知道模式1用于查找a和f(包括)之间的任何简单字母,模式2用于查找不在a和f(包括)之间的任何简单字母。但模式3意味着什么

但模式3意味着什么

^
之外的
[]
表示字符串开头,就像
$
表示字符串结尾一样

但模式3意味着什么

^
之外的
[]
表示字符串开头,就像
$
表示字符串结尾一样。

“^[a-f]”

表示字母
a-f
在行首匹配

“^[a-f]”

表示字母
a-f
在行首匹配

但模式3意味着什么

模式3
^[a-f]
macthes当字符串以
[a-f]
开头时

但模式3意味着什么


模式3
^[a-f]
macthes当一个字符串以
[a-f]
开始时,
^
得到了它。阿努巴瓦,我明白了。塔克斯