带^symbol的Java正则表达式:从位置查找
我试图在字符串中找到^a{3}模式,但不是从头开始。从位置2开始 例如:带^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
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());