2022年11月16日 星期三

[筆記] Python Regular Expression (正規表示法)

這篇不是Python教學,是我的Python 正規表示法(Regular Expression)的筆記,截圖是在Jupyter notebook上寫的。會不定期更新。

[翻譯名稱]
Regular Expression,一般簡稱為RE,翻譯成"正規表示法"、"正規表達式"、"規則運算式"、"常規表示法",我從前學到的翻譯是正規表示法,所以我一直是用這名稱。

[RE版本]
在看Python的RE時,感覺和vi的有點不一樣,Google了一下資料,發現vi的是Basic Regular Expression (BRE),而Python支援的是Perl Compatible Regular Expression (PCRE)。

[正規表示式的特殊字元]
\d 代表0-9的整數字元
\D 代表0-9整數字元外的其他字元
\s 空白字元、Tab、換行字元、換頁字元
\S 非空白字元
\w 英、數字元和底線
\W 非英、數字元和底線

[載入Regualr Expression模組]
正規表式法不是Python的標準模組,必須載入Regular Expression (re)模組才能使用。


[利用re.compile()建立Regex物件]
Regex是Regular Expression的縮寫,可把搜尋的規則寫在Regex物件裡。


[使用Regex物件裡的search()方法來搜尋]
如果沒有匹配的字串,會回傳None。如果有匹配的字串,會回傳匹配的第一筆資料。



[使用Regex物件裡的finall()方法來搜尋]
如果沒有匹配的字串,會回傳空串列。如果有匹配的字串,會回傳匹配的資料存到串列裡。


[使用Regex物件裡的match()方法來搜尋]
match()和search()有點像,但match()只會去找被字串開頭的匹配。



[使用管線Pipe來搜尋]
和Linux指令一樣,pipe的符號為|,像OR(或)的動作。




[忽略搜尋字串的大小寫]
加上參數re.I或是re.IGNORECASE來忽略搜尋字串的大小寫


[使用問號(?)來搜尋]
在搜尋時,小括號裡的字串不是必要的,可在小括號後加個?來表達。換句話說,小括號裡的字串可以有或沒有。


[使用星號(*)或加號(+)來搜尋]
在搜尋時,小括號後加個*或+來表達。*號代表,小括號裡的字串可以重複0次到無限多次;*號代表,小括號裡的字串可以重複1次到無限多次。


[使用re.sub()來搜尋並置換]
re.sub(A, B, C),其中A是舊(被搜尋)的字串,B是要新的字串,C是整個要被搜尋的字串。也就是說在C裡面,如果有找到A,就把A換成B。


沒有留言:

張貼留言