Допустим, у меня есть код ниже:RegEx в Java, не захватив группу
Pattern pt = Pattern.compile("(?:h)?o");
Matcher m = pt.matcher("hours 123");
m.find();
System.out.println(m.group(0));
И результат
ho
Здесь в регулярном выражении У меня есть, не захватывая group (?:h)
. Почему эта группа включена в окончательные результаты? Я просто хочу получить «o».
FYI, не-захвата группы все еще является частью всего матча, это просто не входит в группу матчей. – OGHaza
наконец-то я понял. (?: h) включен в result.it просто указывает, что я не могу использовать $ 1, это сделано по соображениям производительности. –