正则总结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当做普通字符(把多行作为一个字符串匹配)

 

posted @ 2018-12-17 11:55  WhiteMouse  Views(2267)  Comments(0Edit  收藏  举报