Ответ 1
Поскольку мы все догадываемся, я мог бы также дать мне: я всегда думал, что это означает Python. Это может показаться довольно глупым - что, P для Python?! - но в свою защиту я смутно помнил эту тему [акцент мой]:
Subject: Утверждение (? P...) расширений синтаксиса regex
От: Гвидо ван Россум (gui... @CNRI.Reston.Va.US)
Дата: 10 декабря 1997 года 3:36:19 pm
У меня необычный запрос для разработчиков Perl (те, которые разрабатывают язык Perl). Я надеюсь, что это (perl5-porters) - правильный список. я am cc'ing строковый сингл Python, потому что это источник большинства работу, которую я здесь обсуждаю.
Вероятно, вы знаете о Python. Я создатель Python; я планируя выпустить следующую "основную" версию Python 1.5, к концу в этом году. Я надеюсь, что Python и Perl могут сосуществовать в ближайшие годы; перекрестное опыление может быть хорошим для обоих языков. (Я считаю, Ларри хорошо посмотрел на Python, когда добавил объекты к Perl 5; O'Reilly публикует книги об обоих языках.)
Как вы знаете, Python 1.5 добавляет новый модуль регулярных выражений, который более близко соответствует синтаксису Perl. Мы старались быть как можно ближе к Синтаксис Perl, насколько это возможно, в синтаксисе Python. Однако регулярное выражение синтаксис имеет некоторые специфичные для Python расширения, которые начинаются с (? P. В настоящее время существует два из них:
(?P<foo>...)
Подобно обычным скобкам группировки, но текст согласованный группой, доступен после того, как матч был выполнен, через имя символической группы "foo".
(?P=foo)
Соответствует той же строке, что и группа с именем "Foo". Эквивалентен \1,\2 и т.д., За исключением того, что группа передается по имени, а не по номеру.Я надеюсь, что это расширение, специфичное для Python, не будет конфликтовать с любым будущих расширений Perl для синтаксиса regex Perl. Если у вас есть планы используйте (? P, пожалуйста, сообщите нам как можно скорее, чтобы мы могли разрешить конфликт. В противном случае было бы неплохо, если синтаксис (? P может быть постоянно зарезервированный для расширений синтаксиса, специфичных для Python. (Is там какой-то реестр расширений?)
на который ответил Ларри Уэлл:
[...] На данный момент реестра нет - ваш - это первый запрос от вне perl5-porters, так что это довольно низкая пропускная способность. (К сожалению, на прошлой неделе он был еще ниже - я был в Нью-Йорке в Интернете World).
В любом случае, насколько я могу судить, у вас может быть "P" с моим благословение. (Очевидно, Perl не нуждается в "P" в этот момент.:-) [...]
Итак, я не знаю, какой изначальный выбор P был мотивирован шаблоном? заполнитель? пингвины? - но вы можете понять, почему я всегда ассоциировал его с Python. Что касается того, что (1) я не люблю регулярные выражения и избегаю их там, где это возможно, и (2) эта нить, произошедшая пятнадцать лет назад, выглядит странно.