1. 程式人生 > >python正則表示式與文字匹配

python正則表示式與文字匹配

python很強大

python的正則表示式很好用

這篇文章就寫寫怎麼用python的正則表示式來匹配txt文字中的字元吧

首先,要知道自己匹配的字串是什麼形式的,然後根據自己的字串形式來寫出對應的正則表示式

例如這次,我需要匹配的是數字加逗號加數字的字串形式

所以我的正則表示式的形式如下

rule_name = r'\b(\d*,+\d+)\s'
compile_name = re.compile(rule_name, re.M)
\d代表陣列,然後後面帶符號的話,符號要在*後面新增,\s是空格還是tab之類的,\b是代表間斷,具體也不清楚是什麼。。r代表的是生字串的意思,然後()裡面的是最後得到的字串,在這裡,我的字串不需要那些空格或者間斷之類的,所以就在那些\d那裡加了括號,具體是要用其他代表形式的話,可以直接百度,找到例如字母的表達。

然後下面就要用compile,裡面的re.M的意思就是多行匹配,具體什麼意思我也不是很清楚,不知道是文字不止一行時用,還是說匹配的字元有多行的時候用,但是我這樣寫並沒有出現錯誤,所以就繼續這樣寫了。

然後就是開啟txt檔案,這個很簡單

#"獲取文字"
f = open(path)
st = f.read()
path就是文字的路徑了

之後直接呼叫findall函式,可以直接找到在這個文本里的所有符合表示式的字串,並且返回一個list,裡面就是找到的所有字串了

res_name = compile_name.findall(st)
這個res_name就是一個list,裡面包含了找到的所有字串了

呼叫的時候,直接res_name[i]就可以找到對應的第i個字串了

至此,文字匹配完畢,比較簡單的操作,幾行程式碼就實現了,雖然當時百度的時候也是百度了很久,但是最後還是成功了,比較開始,打碼會開心,大概就是因為反饋快吧,可以很快就讓你知道你付出的努力有沒有回報。哈哈哈哈