爬蟲中group的意思
您好,我有兩個問題
問題一:為什麼匹配結果永遠都只有一種(除了group以外)
test_string = "I love dog."
regex = 'I love [acdgnost]+'
RegexMatchingTest(regex, test_string)
匹配結果是I love dog
為什麼不是
I love d,I love o,I love g
I love do,I love dg, I love og,
I love dog
問題二:我查資料後還是不懂group的意思
test_string = "I like hiking sport."
regex = 'I like (hiking|basketball) sport'
RegexMatchingTest(regex, test_string)
group(0)的結果是因為他把regex當成'I like hiking|basketball sport' 嗎??
那group(1)要怎麼理解
回答列表
-
2019/12/12 下午 00:50cham chen贊同數:2不贊同數:0留言數:2
我回答問題一
因為 [ ]+ 中,[ ] 指找尋框框內有這些元素字元,但一次只能找一個字元出來;而 + 指可以一次找尋出很多字元出來。
所以 [acdgnost]+ 內部有 d g o 所以都會被找出來 變成dog
如果你改成 [acdgnost] 就只會match 出 d 因為他是dog的第一個字母
如果你改成[acdnost]+ (刻意把g拿掉) 所以只會match 出 do
如果你改成[acdgnst]+ (刻意把o拿掉) 只會match 出 d (因為o沒辦法match只好結束)
另外
問題二
我覺得 group 會是先把完整匹配的結果輸出出來。(就是那一條句子)
之後依序把符合匹配的內容輸出出來。(以此題為例就是那一個球類)
你可以嘗試做做看hw code 就會了解group是怎麼用的