正規表達式 regex

透過一些特殊符號的方式來處理字串的方法,可使用pythex來練習

特殊符號

符號說明範例表達式符合條件(粗體部分)
.代表一個任意字元(換行符號\n除外)a.c.eabcde12345
^代表指定字串需在開始處^abcabcde12345
$代表指定字串需在結束處(符號在後面)345$abcde12345
[]
[-]
代表任何符合字元中的內容,可直接輸入字串
也可用a-z或0-9
[ae5]abcde12345
[^]代表不符合字串中字元的內容 [^ae5] abcde12345
\代表後面的字元(符號)以一般字元處理e\\1abcde\12345+

數量

符號 說明 範例 符合條件(粗體部分)
*代表字串中的字元可以出現0 ~ ∞次
a後面的b出現了0次也可以符合,出現了很多次也可以符合,所以第一個a也符合(因為後面的b沒有出現,是零次)
ab*aabbccddee\12345+bcd
+ 代表字串中的字元可以出現1 ~ ∞次
第一個a後面沒有出現b無法符合(須出現一次),abb出現了兩次b所以符合
ab+aabbccddee\12345+bcd
?代表字串中的字元可出現0~1次
第一個a後面沒有b(0次)符合條件,ab符合一次條件,但是abb後面有兩次b所以不符合條件
ab?aabbccddee\12345+bcd
{m}代表指定字串必須出現m次b{2}aabbccddee\12345+bcdbbbcccbbbb
{m,}代表指定字串可以出現m~無限次b{2,} aabbccddee\12345+bcdbbbcccbbbb
{m,n} 代表指定字串可以出現m~n次b{1,2}aabbccddee\12345+bcdbbbcccbbbb

特殊序列

序列說明範例
\d數字字元,相當於[0-9]aabbccddee\12345+bcd
\D非數字字元,相當於[^0-9]aabbccddee\12345+bcd
\s空白,定位、tab、換行、換頁字元,相當於[ \r\t\n\f]aabbccddee\12345+bcd
\S非空白,定位、tab、換行、換頁字元,相當於[^ \r\t\n\f] aabbccddee\12345+bcd
\w數字、字母或底線字元,相當於[0-9a-zA-z_]abc123+!_@><“
\W 非數字、字母或底線字元,相當於[^0-9a-zA-z_] abc123+!_@><“
\b一個單字與單字的空格字元,如果單字之間的空格超過兩個則無法符合(\bmy\b)符合:say my name
不符合:say ma name
\B空白字元,如果中間空一格(\B my \B)單字與單字之間須兩個空白以上才符合,如果貼緊單字(\Bmy\B)則必須左右都無空白才符合 (\B my \B)符合: say my name
(\Bmy\B)符合:saymyname

常用範例

常用表達式範例
整數[0-9]+1234567
浮點數[0-9]+.[0-9]+1.23
英文單字[a-zA-Z]+python
變數名稱[a-zA-Z_][a-zA-Z0-9_]*_class
email[a-zA-Z0-9_.-]+@[a-zA-Z0-9._-]+admin@mimigd.com
網址urlhttps?://[a-zA-Z0-9./_-]+http://mimigd.com
https://mimigd.com
圖片urlhttps?://+[a-zA-Z0-9-/._]+.[jpegpng]+https://mimigd.com/wp-content/uploads/2021/12/hebi_aodaisyou.png
http://test.com.tw/p1.png
電話號碼\(?\d{2,4}\)?\-\d{6,8}(02)-12345678
0987-654321

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *