Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Захваты / Именованные захваты
Тест — Захваты
Что выведет следующая программа?
if 'ab12cd' ~~ / (\w+) (\d+) / {
say "$0 $1";
}| 0 | ab 12 |
| 1 | ab1 2 |
| 0 | ab12 cd |
| 0 | 12 ab |
Жадный \w+ берёт словесные символы настолько далеко,
насколько может, лишь бы для \d+ осталась хотя бы одна
цифра. Он берёт ab1, а \d+ затем сопоставляет
единственную оставшуюся цифру 2. Итак, $0
равно ab1, а $1 равно 2.