Dalam Python, (?P<group_name>…)
sintaks memungkinkan seseorang untuk merujuk ke string yang cocok melalui namanya:
>>> import re
>>> match = re.search('(?P<name>.*) (?P<phone>.*)', 'John 123456')
>>> match.group('name')
'John'
Apa artinya "P"? Saya tidak dapat menemukan petunjuk dalam dokumentasi resmi .
Saya akan senang mendapatkan ide tentang bagaimana membantu siswa saya mengingat sintaks ini. Mengetahui apa artinya "P" berarti (atau mungkin berarti) berarti berguna.
python
regex
regex-group
Eric O Lebigot
sumber
sumber
P
singkatanPlaceholder
.match.groups
(dengan as
) Anda akan diam-diam mendapatkan tuple dari semua grup -_-groups('name')
=>('John', '123456')
ketika apa yang sebenarnya Anda inginkan adalahgroup('name')
=>'John'
Saya harap ini menyelamatkan seseorang di suatu waktu.Jawaban:
Karena kita semua menebak, saya mungkin juga memberikan milik saya: Saya selalu berpikir itu singkatan dari Python. Itu mungkin terdengar sangat bodoh - apa, P untuk Python ?! - tetapi dalam pembelaan saya, saya samar-samar mengingat utas ini [penekanan milik saya]:
dimana Larry Wall menjawab:
Jadi saya tidak tahu apa pilihan P yang asli dimotivasi oleh - pola? placeholder? penguin? - tapi Anda bisa mengerti mengapa saya selalu mengaitkannya dengan Python. Yang mempertimbangkan bahwa (1) Saya tidak suka ekspresi reguler dan menghindarinya sedapat mungkin, dan (2) utas ini terjadi lima belas tahun yang lalu, agak aneh.
sumber
(?<group_name>…)
sintaks, yang tampaknya paling populer - bahkan Java mendukungnya sekarang.Pola! Grup memberi nama (sub) pola untuk digunakan nanti di regex. Lihat dokumentasi di sini untuk perincian tentang bagaimana kelompok tersebut digunakan.
sumber
(?P<name>…)
is "patternname
". Semuanya adalah sebuah pola, dalam regexp, jadi agak aneh jika hanya memberi label pada(?P<…>…)
grup sebagai pola. Ini akan dilakukan, untuk siswa saya. :)5
. Secara paradoks, dianjurkan untuk berbicara dengan santai, selalu sangat jelas dan eksplisit tentang hal itu - misalnya. ceritakan komentar Anda sebelumnya kepada siswa Anda (merevisi mungkin kalimat terakhir;).)Ekstensi Python. Dari Python Docos:
https://docs.python.org/3/howto/regex.html
sumber