Следует отметить, что имеются две группы в структуре. Эти группы (один) и (два). В доступной строки, у вас есть суб строку, "один", а затем, после некоторого расстояния, у вас есть суб строку "два". Группа (один) соответствует суб строки "один" в доступной строке. Группа "два" соответствует суб строку "два", в доступной строке. Из-за этого совпадения, к югу строка "один" в доступной строке присваивается внутренней переменной $ 1; суб строка, "два" в доступной строке присваивается внутренней переменной, $ 2. В коде, последние два утверждения распечатать значения этих двух переменных.
Если вы никогда не были группы (скобки), согласование будет по-прежнему происходят, но ничего не будет назначать внутренних переменных ($ 1 и $ 2). Другими словами, ничто не будет захвачен. Выход кода: $ 1: $ 2 одним является: двух Вы можете иметь до 9 групп (пар скобок) в шаблоне. Если есть по крайней мере 9 суб строк в доступной строке, что соответствует группам 9 шаблона, то 9 суб строк в доступной строке будет назначен до $ 1, $ 2 ... $ 9 соответственно. Это первая соответствует пойдет $ 1; второй $ 2, третий до $ 3 и так далее.
Это, как вы помните, или захват суб строк в доступной строке после сопоставления. Обратите внимание: если нет группы, то не было бы ничего, чтобы помнить (не назначение не произойдет); нет захвата. Вам не нужно иметь до 9 групп в структуре; Вы можете иметь любое количество меньше. Что о вложенных групп Рассмотрим следующий код: использовать строгий; если ("бухгалтеры, бухгалтер и книги вместе.
" = ~ /книга (хранитель (ы |) |) /) {печати "Согласованные \\ п"; } Еще {печать "не согласованный \\ п"; } Печати "\\ $ 1:", $ 1 ", \\ п"; печать "\\ $ 2:", $ 2, "\\ п"; печать "\\ $ 3:", $ 3, "\\ п"; Выводится выше код: $ 1: $ хранители 2: с $ 3: Модель будет соответствовать "бухгалтеров", "бухгалтер" или "книги". Тем не менее, у нас есть две группы; один внутри другого. Именно эти две группы