使用環境:
Anaconda Spyder
官方網頁:
https://docs.python.org/3/library/re.html
re(regular expression)是很方便的字串處理module。可以把原本需要很多處理字串判斷式的程式碼用更簡便的方式呈現。
re.findAll("使用條件","目標字串") 回傳所有在"目標字串"裡符合"使用條件"的字串。
注意乘號和加號都是以前一字元為目標。EX:a+b,效果會在a身上,也就是a至少一次,b只有一次。
test_string = 'aabb abb aab '
pattern = 'a+b'
ans=re.findall(pattern,test_string)
print(ans)
結果:['aab', 'ab', 'aab', 'ab']
其他程式碼:
import re
# 練習抓abbbbc, bc
test_string = 'find abbbbc, bc, skip c, acc'
pattern = 'a*b+c'
ans=re.findall(pattern,test_string)
print(ans)
# 練習找數字
test_string = '12 Drummers Drumming, 11 Pipers Piping, 10 Lords a Leaping'
pattern = '[0-9]+'
ans=re.findall(pattern,test_string)
print(ans)
# 練習找文字
test_string = 'find: can, man, fan, skip: dan, ran, pan'
pattern = '[cmf]an'
ans=re.findall(pattern,test_string)
print(ans)
# 練習跳脫符號
test_string = 'find: 591., dot., yes., skip: non!'
pattern = '.{3}\.'
ans=re.findall(pattern,test_string)
print(ans)
# 條件式搜尋
test_string = 'find: I love cats, I love dogs, skip: I love logs, I love cogs'
pattern = 'I love cats|I love dogs'
ans=re.findall(pattern,test_string)
print(ans)
輸出結果:
['abbbbc', 'bc']
['12', '11', '10']
['can', 'man', 'fan']
['591.', 'dot.', 'yes.']
['I love cats', 'I love dogs']
正規表達式可以更進階,今天先弄比較簡單,之後有更認識會再補