一.正则表达式的元字符:
1.匹配单个字符与数字:
(1). 匹配出换行符以外的任意字符
(2)[0123456789] [ ]是字符集合,表示匹配方括号所包含的任意一个字符,匹配任意数字
(3)[a-z] 匹配任意小写字母
(4)[A-Z] 匹配任意大写字母
(5)[0-9] 匹配任意数字
(6)[0-9a-zA-Z] 匹配任意数字和字母
(7)[0-9a-zA-Z_] 匹配任意数字,字母和下划线
(8)[^sunck] 匹配除了sunck这几个字母以外的所有字符,中括号里面的^称为脱字符,表示不匹配集合中的字符(脱字符外面要加中括号)
(9)\d 匹配数字
(10)\D 匹配非数字字符
(11)\w 匹配数字,字母和下划线
(12)\W 匹配非数字,字母和下划线的字符
(13)\s 匹配任意的空白符(空格,换行,换页,制表,回车)
(14)\S 匹配任意非空白符
2.锚字符(边界字符)
(1)^ 首行匹配,和在[ ]里的^不是一个意思
(2)$ 行尾匹配
(3)\A 匹配字符串开始,它和^的区别是\A只匹配整个字符串的开头即使在re.M(python)模式下也不会匹配它行的行首
(4)\Z 匹配字符串的结束,它和$的区别是,\Z只匹配字符串的结束,即使在re.M模式下也不会匹配它行的行尾
(5)\b 匹配一个单词的边界,也就是指单词和空格间的位置
(5)\B 匹配非单词边界
3.匹配多个字符
说明:下方的x,y,z和非负整数n,m均为假设的普通字符,不是正则表达式的元字符
(1)(xyz) 匹配小括号内的xyz(作为一个整体去匹配)
(2)x? 匹配0个或者1个x(非贪婪匹配)
(3)x* 匹配0个或者任意多个x(贪婪匹配)
(4)x+ 匹配至少一个x(贪婪匹配)
(5)x{n} 匹配确定的n个x(n是一个非负整数)
(6)x{n,} 匹配至少n个x(贪婪匹配)
(7)x{n,m} 匹配至少n个最多m个x,注意n<=m
(8)x|y |表示或,匹配x或y
4.特殊
(1)*?,+?,x? 最小匹配,通常都是尽可能多的匹配,可以使用这种方法解决贪婪匹配
(2)(?:x) 类似(xyz),但不表示一个组