В Python (?P<group_name>…)
синтаксис позволяет ссылаться на совпавшую строку через ее имя:
>>> import re
>>> match = re.search('(?P<name>.*) (?P<phone>.*)', 'John 123456')
>>> match.group('name')
'John'
Что означает "P"? Я не смог найти ни одного намека в официальной документации .
Я хотел бы получить идеи о том, как помочь моим студентам запомнить этот синтаксис. Знание того, что «P» обозначает (или может означать), было бы полезно.
python
regex
regex-group
Эрик О Лебиго
источник
источник
P
обозначаетPlaceholder
.match.groups
(сs
), вы молча получите кортеж всех групп -_-groups('name')
=>,('John', '123456')
когда то, что вы на самом деле хотели, былоgroup('name')
=>'John'
Я надеюсь, что это спасет кого-то где-то некоторое время.Ответы:
Так как мы все догадываемся, я мог бы также высказать свое: я всегда думал, что это означало Python. Это может звучать довольно глупо - что, P для Python ?! - но в свою защиту я смутно вспомнил эту ветку [выделение мое]:
на что Ларри Уолл ответил:
Так что я не знаю, чем исходный выбор P был мотивирован - pattern? заполнитель? пингвины? - но вы можете понять, почему я всегда ассоциировал это с Python. Что, учитывая, что (1) я не люблю регулярные выражения и избегаю их везде, где это возможно, и (2) этот поток произошел пятнадцать лет назад, довольно странно.
источник
(?<group_name>…)
синтаксис, который кажется наиболее популярным - даже Java поддерживает его сейчас.Шаблон! Группа называет (под) шаблон для последующего использования в регулярном выражении. Смотрите документацию здесь для деталей о том, как такие группы используются.
источник
(?P<name>…)
это «шаблонname
». Тем не менее, все является шаблоном в регулярном выражении, поэтому довольно странно маркировать(?P<…>…)
группы только как шаблоны. Это подойдет для моих учеников. :)5
. Как это ни парадоксально, рекомендуется говорить небрежно, просто всегда быть очень ясным и ясным об этом - например. Расскажите своим предыдущим комментариям в полном объеме своим студентам (возможно, пересмотрев самое последнее предложение;).)Расширение Python. Из Python Docos:
https://docs.python.org/3/howto/regex.html
источник