logo
Loading...

爬蟲中group的意思 - Cupoy

您好,我有兩個問題問題一:為什麼匹配結果永遠都只有一種(除了group以外)test_string ...

pycrawler,pycrawler-d11

爬蟲中group的意思

2019/12/11 下午 08:28
Python網路爬蟲討論版
葉碩涵
觀看數:13
回答數:1
收藏數:1
pycrawler
pycrawler-d11

您好,我有兩個問題

問題一:為什麼匹配結果永遠都只有一種(除了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:50
    cham 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是怎麼用的