W Pythonie (?P<group_name>…)
składnia pozwala odwołać się do dopasowanego ciągu poprzez jego nazwę:
>>> import re
>>> match = re.search('(?P<name>.*) (?P<phone>.*)', 'John 123456')
>>> match.group('name')
'John'
Co oznacza „P”? Nie mogłem znaleźć żadnej wskazówki w oficjalnej dokumentacji .
Bardzo chciałbym uzyskać pomysły, jak pomóc moim uczniom zapamiętać tę składnię. Wiedza o tym, co oznacza (lub może oznaczać) „P”, byłaby przydatna.
python
regex
regex-group
Eric O Lebigot
źródło
źródło
P
oznaczaPlaceholder
.match.groups
(zs
), po cichu dostaniesz krotkę wszystkich grup -_-groups('name')
=>('John', '123456')
kiedy to, czego tak naprawdę chciałeś, byłogroup('name')
=>'John'
Mam nadzieję, że to zaoszczędzi kogoś gdzieś przez jakiś czas (y).Odpowiedzi:
Ponieważ wszyscy zgadujemy, równie dobrze mogę podać moje: zawsze myślałem, że oznacza Python. To może brzmieć dość głupio - co, P dla Pythona ?! - ale na swoją obronę niejasno zapamiętałem ten wątek [podkreślenie moje]:
na co Larry Wall odpowiedział:
Nie wiem więc, czym był motywowany pierwotny wybór P - wzór? symbol zastępczy? pingwiny? - ale możesz zrozumieć, dlaczego zawsze kojarzyłem go z Pythonem. Biorąc pod uwagę to, że (1) nie lubię wyrażeń regularnych i unikam ich, gdy tylko jest to możliwe, oraz (2) ten wątek wydarzył się piętnaście lat temu, jest trochę dziwny.
źródło
(?<group_name>…)
składnię, która wydaje się być najpopularniejsza - obsługuje ją nawet Java.Wzór! Grupa nazywa (pod) wzorzec do późniejszego użycia w wyrażeniu regularnym. Zobacz dokumentację tutaj, aby uzyskać szczegółowe informacje na temat wykorzystania takich grup.
źródło
(?P<name>…)
to „wzorzecname
”. Jednak wszystko jest wzorcem w wyrażeniu regularnym, więc dziwne jest oznaczanie(?P<…>…)
grup tylko wzorcami. To jednak wystarczy dla moich uczniów. :)5
. Paradoksalnie zachęca się do swobodnego mówienia, po prostu zawsze mów o tym bardzo jasno i wyraźnie - np. Opowiedz uczniom cały swój poprzedni komentarz (poprawiając być może ostatnie zdanie;).)Rozszerzenie Pythona. Z Python Docos:
https://docs.python.org/3/howto/regex.html
źródło