2018年12月13日 星期四
Python re 模組 (備忘)
功能太多,每次要用都要重學的模組
要找保留字的話,前面要加 \ 符號
. 代替任何字元
* 重複此符號前面的項目零次或多次
項目可為 [] 所指定的內容,或是 .
+ 重複此符號前面的項目至少一次,至多次
譬如找數字 [0-9]+ 找一個以上的數字串
也可用 \d+ 來實現
[...] 搜尋 [] 內指定的字元,譬如只找數字 [0-9] ,只找英文字[a-zA-Z],只找小寫字母[a-z]
(?#...) 在本已複雜難懂的正則表達式中加註釋,使字串更難以閱讀 (?#....) 中的內容會被忽略
(?<=....) 找尋字串的開頭須符合 括號內指定的項目
(?=....) 找尋字串的結尾須符合 括號內指定的項目
(?!....) 找尋字串的結尾須不包含 括號內指定的項目
re.compile(pattern[, flags])
re.search(pattern, string[, flags])
譬如 telnet 有控制碼 '\x1b[...;...m' 做前景被景顏色控制
可用pattern '\x1b\[[0-9;]*m' 來找出有關顏色控制的字串
若無,則回傳 None
a = re.search('\x1b\[[0-9;]*m', receivedata)
# 由於 [ 為保留字,要找保留字符時,前面要加 \
# 數值與 ; 有可能出現多次,故使用 * 來表達*前面的項目要重複找
if a != None:
control_code = receivedata[a.start():a.end()] # 取出控制碼
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言