私たちは皆推測しているので、私のものをあげてもいいかもしれません.私はいつもそれがPythonの略だと思っていました. それはかなりばかげているように聞こえるかもしれません-何、Python の P?! -- しかし、私の弁護において、私は漠然とこのスレッドを思い出しました[私のものを強調]:
件名: (?P...) 正規表現構文拡張の主張
差出人: Guido van Rossum (gui...@CNRI.Reston.Va.US)
日付: 1997 年 12 月 10 日午後 3 時 36 分 19 秒
Perl 開発者 (Perl 言語を開発する人) に珍しいお願いがあります。これ (perl5-porters) が正しいリストであることを願っています。Python の string-sig を cc に入れています。これは、私がここで議論しているほとんどの作業の起源だからです。
あなたはおそらくPythonを知っています。私は Python の作成者です。今年の終わりまでに、次の「メジャー」バージョンである Python 1.5 をリリースする予定です。Python と Perl が今後数年で共存できることを願っています。他家受粉は両方の言語に適しています。(Larry が Perl 5 にオブジェクトを追加したとき、Python をよく見ていたと思います。O'Reilly は両方の言語に関する本を出版しています。)
ご存知かもしれませんが、Python 1.5 では、Perl の構文により厳密に一致する新しい正規表現モジュールが追加されています。Python の構文の中で、できる限り Perl の構文に近づけようとしました。ただし、正規表現構文には Python 固有の拡張機能がいくつかあり、すべて (?P で始まります。現在、次の 2 つがあります。
(?P<foo>...)
通常のグループ化括弧に似ています
が、グループによって一致したテキストは、一致が実行された後、シンボリック グループ名 "foo" を介してアクセスできます。
(?P=foo)
「foo」という名前のグループによって一致したものと同じ文字列に一致します。
グループが番号ではなく名前で参照される点を除いて、\1、\2 などと同等です。
この Python 固有の拡張機能が、Perl 正規表現構文に対する将来の Perl 拡張機能と競合しないことを願っています。(?P を使用する計画がある場合は、競合を解決できるようにできるだけ早くお知らせください。 それ以外の場合は、(?P 構文を Python 固有の構文拡張用に永続的に予約できるとよいでしょう。 (ある種の拡張子のレジストリがありますか?)
ラリー・ウォールは次のように答えました。
[...] 現時点ではレジストリはありません。あなたのリクエストは外部の perl5-porters からの最初のリクエストなので、かなり帯域幅の少ないアクティビティです。(すみません、先週はさらに低くなりました。私はニューヨークの Internet World に出かけていました。)
とにかく、私に関する限り、あなたは確かに私の祝福で「P」を持っているかもしれません. (明らかに、Perl はこの時点で 'P' を必要としません。:-) [...]
では、P の最初の選択が何によって動機付けられたのかはわかりません -- パターン? プレースホルダ? ペンギン?-- しかし、なぜ私がこれを常に Python と関連付けてきたのかは理解できるでしょう。(1) 私は正規表現が好きではなく、可能な限り正規表現を避けていること、および (2) このスレッドが 15 年前に発生したことを考えると、ちょっと奇妙です。