Именованные группы и обратные ссылки
Именованные группы используют для хранения извлеченных данных и дальнейшей работы с ними.
Синтаксис
Весь запрос или подзапрос заключается в фигурные скобки. Имя используется для ссылки на содержимое указанной группы.
Обратите внимание, что пробелы между правой скобкой, двоеточием и именем не допускаются.
Когда правило успешно извлекает некоторый текст, последовательность, соответствующая query, сохраняется в именованной группе «имя». В дальнейшем к содержанию группы можно обратиться с помощью обратной ссылки.
Синтаксис
Именованная группа может хранить совпадения всего запроса или любого корректного поискового подзапроса.
Пример
Именованные группы могут быть вложены друг в друга в произвольном порядке.
Примеры
Имя группы должно быть уникальным в пределах родительского правила. Однако в правилах одного уровня могут быть группы с одинаковым именем, как показано на Изображении 1.
Содержимое именованной группы неизменно. Это означает, что вложенные правила могут ссылаться на именованные группы, но не изменять их значения, которые были объявлены в родительских правилах (за исключением случаев, описанных в разделе «Типы правил»). Если правило устанавливает дополнительные ограничения для значений, хранящихся в именованной группе, необходимо объявить новую именованную группу.
Рассмотрим набор правил на Изображении 2, извлекающих числа, за которыми следует знак процента.
Правило верхнего уровня собирает все числа в именованную группу «num». После выполнения вложенного правила подмножество этих чисел, если за ними следует знак процента, собирается в именованную группу «num_pct» (Изображение 3)
Группа «num» по-прежнему собирает все числа, а не только те, за которыми следует знак «%». Чтобы проверить это, можно изменить результат, как показано на Изображении 4, и вывести в результат группу «num» вместо группы «num_pct».
Результат работы измененного правила показан на Изображении 5.