Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带^symbol的Java正则表达式:从位置查找_Java_Regex_Matcher - Fatal编程技术网

带^symbol的Java正则表达式:从位置查找

带^symbol的Java正则表达式:从位置查找,java,regex,matcher,Java,Regex,Matcher,我试图在字符串中找到^a{3}模式,但不是从头开始。从位置2开始 例如: Pattern pattern = Pattern.compile("^a{3}"); Matcher m = pattern.matcher("xxaaa"); System.out.println(m.find(2)); 似乎“^”表示字符串的开始(不是从位置2开始) 但是如何从位置2找到模式并确保{3}从该位置开始您可以使用正向查找(?这将起作用: (?<=.)\^a{3} (?= # lookbehin

我试图在字符串中找到^a{3}模式,但不是从头开始。从位置2开始

例如:

Pattern pattern = Pattern.compile("^a{3}");
Matcher m = pattern.matcher("xxaaa");
System.out.println(m.find(2));
似乎“^”表示字符串的开始(不是从位置2开始)


但是如何从位置2找到模式并确保{3}从该位置开始

您可以使用正向查找
(?这将起作用:

(?<=.)\^a{3}

(?=  # lookbehind
.    # any character
)    # close
\^a{3} # your pattern

(?您可以将匹配器中的区域更改为从2开始,而不必与原始正则表达式混淆。请参见以下内容:

Pattern pattern = Pattern.compile("^a{3}");
Matcher m = pattern.matcher("xxaaa");
m.region(2, m.regionEnd()); // <---- region start is now 2

System.out.println(m.find());
System.out.println(m.lookingAt());
Pattern=Pattern.compile(“^a{3}”);
匹配器m=模式匹配器(“xxaaa”);

m、 region(2,m.regionEnd());//在开始后搜索至少2个字符:
“^.{2,}(a{3})”
Pattern pattern = Pattern.compile("^a{3}");
Matcher m = pattern.matcher("xxaaa");
m.region(2, m.regionEnd()); // <---- region start is now 2

System.out.println(m.find());
System.out.println(m.lookingAt());