Я просматривал тест и заметил, что квантификатор притяжательности действительно работает в str.split()
. поэтому я написал следующий код:
String str = "aaaaab";
if(str.matches("a*+b"))
System.out.println("I backtrack");
else
System.out.println("Nope.");
При запуске это выводит I backtrack
. Вот почему это сбивает с толку: мне сказали, что притяжательный квантификатор никогда не отменяется, так зачем a*+
отказываться от b
в строке?
Что мне нужно, так это более подробное объяснение того, когда притяжательные квантификаторы отступают.
a*+
потребляетb
? Это единственный сценарий, при котором произойдет откат. Но это не так. - person f1sh   schedule 13.02.2017.*+b
против.*b
(или[ab]*+b
против[ab]*b
, если вы хотите быть более конкретным) - person Aaron   schedule 13.02.2017