實驗需要,在乙個含有幾億個字元的txt檔案中查詢特定的字串,首先用re模組進行查詢
re.finditer(filename, label_str)可以在label_str中查詢filename的位置,s=match.start()返回字串開始的索引,e=match.end(),返回字串結束的索引。程式執行的結果是
304091635
304091689
304096479
304096533
1.003844
耗時1s左右
同樣的,由於txt檔案中為一行一行的資料,可以用readlines進行遍歷讀取比較,程式如下
執行結果如下:
13.335657
可見耗時有3s多,用正則化模組要快的多
另外,由於label_str中存在1.
2_0_pitch_95_yaw_95_lat_41.8975137_lng_-87.6268723.jpg,所以用re模組尋找時會返回兩個結果,而用逐行讀取的方式則返回乙個值
python 正則re模組
1.正則各種字元表示的含義 預設匹配除 n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行 匹配字元開頭 匹配 號前的字元0次或多次,re.findall ab cabb3abcbbac 結果為 abb ab a 匹配前乙個字元1次或多次,re.findall ab ab ...
正則re模組
匹配任意乙個字元 以某個字元開頭 以某個字元結尾 匹配0次或多次 匹配一次或多次 匹配0次或1次 匹配n次 匹配n次或多次 匹配n次到m次 字符集,非 a z 匹配小寫字母a到z的任意字母一次 a z 匹配除了小寫字母a到z之外的任意字元一次 d 匹配數字0 9,0次或多次 d匹配任何十進位制數,0...
re正則模組
1.正規表示式的常用符號 預設匹配除 n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行 匹配字元開頭,若指定flags multiline,這種也可以匹配上 r a nabc neee flags re.multiline 匹配字元結尾,或e.search foo bfo...