re.search找到您的正則表達式模式匹配並返回正則表達式匹配對象。如果沒有匹配,則返回None。因此,您無法撥打.group()
。
In [38]: re.search(r'921', mystr)
Out[38]: <_sre.SRE_Match object; span=(23, 26), match='921'>
In [39]: mystr
Out[39]: "b'la lala 135\\r\\n 1039 921\\r\\n'"
In [40]: re.search(r'921', mystr)
Out[40]: <_sre.SRE_Match object; span=(23, 26), match='921'>
In [41]: re.search(r'potatoes', mystr)
的SRE_Match
對象具有group()
方法,其獲取匹配的字符串值。
In [42]: re.search(r'921', mystr).group()
Out[42]: '921'
所以,如果你還搞不清楚那是什麼都在做,它的發現匹配re.search()
提供的正則表達式模式,並通過與''
替換它從字符串fn
刪除它的字符串fn
。在這種情況下,它在fn
中找到匹配,其中有8位數字(\d{8}
),後面跟着下劃線,然後是4位數字(\d{4}
)。所以字符串看起來像12345678_1234
。
這是Python,而不是Bash – JETM
對不起,你是對的!有四種或五種不同語言的腳本,我搞砸了! – Leo
順便說一句https://regex101.com –