1. 程式人生 > >正則總結1之匹配內容及數量

正則總結1之匹配內容及數量

       正則是測試工程師的一個常用知識重點,特別是在自動化測試(斷言)、介面測試(斷言)、以及字串查詢、修改、替換等相關操作時:

\d                           #表示數字
\D                           #表示非數字
\w                          #表示數字或字母
\W                          #表示既非數字也非字母
\s                          #表示空白\n \r \t
\S                          #表示非空白
\b                          #表示以空白開頭、結尾或非其他字元拼接的如re.serach(r"\btest\b","test "),匹配test
.                            #表示匹配一個非\n的任意字元,可以多個點.多個點表示匹配多個
..                           #表示匹配兩個連續非\n的任意字元,可以多個點.多個點表示匹配多個連續非\n的任意字元
?                          #抑制貪婪性,按最少的匹配
+                          #表示一個或多個
+?                         #表示匹配一個
*                          #表示0個或者多個,如果沒有匹配上,也表示匹配成功,返回''空
*?                          #表示匹配為空,匹配成功
()                          #表示將匹配的內容分組,匹配成功後,可以通過group()來指定輸出的部分
[]                          #表示[]內範圍內的單個字元
[]+                        表示[]內範圍內的儘可能多的字元
{2}                        #表示匹配的長度或數量,匹配2個數量
{1-3}                     #表示1到3個數量
$                          #表示從結尾匹配,示例:re.search(r"55$","123frrt55"),匹配出結尾55
\Z                         #表示從結尾匹配,等價於$
^                          #無括號時,表示從開頭匹配,示例:re.search(r"^123","123frrt"),匹配出開頭123
\A                         #從開頭匹配,等價於^
re.I                        #忽略大小寫,示例:re.search(r"a","BCA",re.I),匹配出A
re.DOTALL            #與.搭配使用時,點可以匹配任意字元,包含\n換行
re.M                       #匹配多行末尾是否匹配re.search(r"a$","BCAn\dea\n45a\n",re.M)
re.S                        #多行時,把\n當做普通字元(把多行作為一個字串匹配)