Regular Expressions
Именованные группы захвата
Поиск…
Синтаксис
Создайте названную группу захвата (
X
- шаблон, который вы хотите захватить):(? 'name'X) (? X) (? PX)
Ссылка на названную группу захвата:
$ {name} \ {name} g \ {name}
замечания
Python и Java не позволяют нескольким группам использовать одно и то же имя.
Как называется названная группа захвата
Учитывая вкусы, названная группа захвата может выглядеть так:
(?'name'X)
(?<name>X)
(?P<name>X)
Когда X
- это шаблон, который вы хотите захватить. Рассмотрим следующую строку:
Когда-то была довольно маленькая девочка ...
Когда-то был единорог со шляпой ...
Когда-то была лодка с пиратским флагом ...
В котором я хочу захватить предмет ( курсивом) каждой строки. Я буду использовать следующее выражение .* was a (?<subject>[\w ]+)[.]{3}
.
Результат совпадения будет иметь место:
MATCH 1
subject [29-47] `pretty little girl`
MATCH 2
subject [80-99] `unicorn with an hat`
MATCH 3
subject [132-155] `boat with a pirate flag`
Ссылка на указанную группу захвата
Как вы можете (или не знаете), вы можете ссылаться на группу захвата с помощью:
$1
1
- номер группы.
Точно так же вы можете ссылаться на названную группу захвата с помощью:
${name}
\{name}
g\{name}
Давайте рассмотрим предыдущий пример и заменим совпадения на
The hero of the story is a ${subject}.
В результате получим:
The hero of the story is a pretty little girl.
The hero of the story is a unicorn with an hat.
The hero of the story is a boat with a pirate flag.