我認為最好用一個例子來說明這一點。
我有 RE 模式choco_icecream = "(do|does) \w (loves|love|likes|like) (choco|chocolate) (ice-cream|icecream|ice cream)"。我想檢查是否example = "Does Jessica like Chocolate Icecream".lower()匹配choco_icecream.
是的example匹配項choco_icecream,但我想知道 的哪個詞example對應于 的元素choco_icecream。
我想在字典里。理想的輸出將如下所示:{"(do|does)":"does", "\w ":"jessica", "(loves|love|likes|like)":"like", "(choco|chocolate)":"chocolate", "(ice-cream|icecream|ice cream)":"icecream"}
我怎么能做到這一點?
uj5u.com熱心網友回復:
我想如果你只是稍微玩一下這個,連同檔案,這一切都會很清楚。
import re
choco_icecream = "(do|does) (\w ) (loves|love|likes|like) (choco|chocolate) (ice-cream|icecream|ice cream)"
example = "Does Jessica like Chocolate Icecream".lower()
x = re.match(choco_icecream, example)
print(x)
print(x.groups())
輸出:
<re.Match object; span=(0, 36), match='does jessica like chocolate icecream'>
('does', 'jessica', 'like', 'chocolate', 'icecream')
列印整個match物件會為您提供整個匹配項,但運算式中的每組括號都會創建一個新的“組”,并且這些組都單獨回傳。
請注意,我修改了您的正則運算式以使名稱也成為一個組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/412110.html
標籤:
