В частности, в следующем примере:
Enter your regex: .*foo // greedy quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.
Enter your regex: .*?foo // reluctant quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfoo" starting at index 0 and ending at index 4.
I found the text "xxxxxxfoo" starting at index 4 and ending at index 13.
Enter your regex: .*+foo // possessive quantifier
Enter input string to search: xfooxxxxxxfoo
No match found.
В объяснении упоминается еда всей входной строки, буквы потребляемые, отладка отступ, самое правое появление "foo" было срыгивание и т.д.
К сожалению, несмотря на приятные метафоры, я до сих пор не понимаю, что есть... Знаете ли вы о другом учебнике, который объясняет (кратко), как работают механизмы регулярных выражений?
В качестве альтернативы, если кто-то может объяснить в несколько иной формулировке следующий абзац, это было бы высоко оценено:
В первом примере используется жадный квантификатор. * найти "что угодно", ноль или более, а затем буквы "f" "o" "o". Поскольку квантификатор жадные, *. выражение сначала съедает весь вход строка. На этом этапе общий выражение не может быть успешным, поскольку последние три буквы ( "f" "o" "o" ) имеют уже потребляется (кем?). Итак, помощник медленно отступает ( справа налево?) по одной букве за раз до тех пор, пока "foo" было опрокинуто ( что это означает?), при котором чтобы совпадение совпадало, и поиск заканчивается.
Второй пример, однако, неохотно, поэтому он начинается с первого ( кем?) "ничего". Потому что "foo" не появляется в начале строка, она вынуждена усвоить ( кто ласточки?) первая буква ( "x" ), которая запускает первый матч в 0 и 4. Наш тест Жгут проводов продолжается до тех пор, пока входная строка исчерпана. Это находит другое совпадение в 4 и 13.
В третьем примере не удается найти потому что квантификатор притяжательный падеж. В этом случае весь строка ввода потребляется. * +, ( как?) не оставляя ничего, чтобы удовлетворить "foo" в конце выражение. Использовать притяжательную квантификатор для ситуаций, когда вы хочу захватить все что угодно без когда-либо отступать (, что означает отключение?); он превзойдет эквивалентный жадный квантор в случаи, когда матч не немедленно найден.