正则表达式(二) 元字符
1.匹配单个字符与数字
1.1 通配符"."
. : 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
>>>import re
>>>a = re.findall('o.', 'www.runoob.com')
>>>a
["oo","om"]
1.2 被中括号括起来的字符
- [0123456789] : []是字符集合,表示匹配方括号中所包含的任意字符
- [awen] : 匹配 'a' , 'w', 'e','n'中的任意字符
- [0-9] : 匹配任何一个数字.类似于[0123456789]
- [a-z] : 匹配任何小写字母
- [A-Z] : 匹配任何大写字母
- [a-zA-Z0-9] : 匹配任何字母及数字
- [^abcd] : 除了abcd字母以外的所有字符,[ ] 中的 ^ (脱字符)表示非,匹配不在[]中的字符
- [^0-9] : 匹配除了数字以外的字符
1.3 用转义字符匹配单个字符
- \d : 匹配数字, 效果同 [0-9]
- \D : 匹配非数字,效果同 [^0-9]
- \w : 匹配数字,字母,下滑钱 ,效果同[0-9a-zA-Z_]
- \W : 匹配非数字,字母,下滑钱 ,效果同[^0-9a-zA-Z_]
- \s : 匹配任何空白字符,包括空格,换页符,换行符,回车符,制表符等等, 等价于[ \f\n\r\t]
- \S : 匹配非空字符,等价于 [^ \f\n\r\t]
\f(换页符) \n(换行符) \r(回车符) \t(制表符)
2.描述符,边字界符
- ^ : 行首匹配, 和 在 [ ]字符集合最中的^ 不是一个意思
- $ : 行尾匹配
- \A : 匹配字符串的开始,它和 "^"的区别是, "\A" 只匹配整个字符串的开头,即使在 " M"模式下, 它也不会匹配其他行的行首
- \Z : 匹配字符串的结束,它和 "$"的区别是, "\Z" 只匹配整个字符串的结尾,即使在 " M"模式下, 它也不会匹配其他行的行尾
- \b : 匹配一个单词边界,也就是指单词和空格间的位置, 例如, "er\b" 可以匹配"nerver"中的"er' , 不能匹配"verb"中的er
- \B : 匹配非单词边界,
例如, "er\B" 不能匹配"nerver"中的"er' , 可以匹配"verb"中的er
3.匹配多行字符
说明 (以下的x , y ,z均为假设的普通字符,不是正则表达式元字符)
- (xyz) : 匹配括号中的xyz(作为一组整体去匹配)
- x? : 匹配0个或1个x,非贪婪方式
- x* : 匹配0个或者任意多个x,延伸 .*表示匹配0个或者任意多个任意字符(除换行符以外)
- x+ : 匹配至少一个x(1个或多个)
- x{n} : 匹配确定的n个x,(n是一个非负整数) 注意: 是连续的
- x{n,} : 匹配至少n个x,(n是一个非负整数) 注意: 是连续的
- x{n,m} : 匹配至少n个x, 最多m个x(n,m是一个非负整数,n <= m) 注意: 是连续的
- x|y : |表示或, 这里指 x 或y
静以修身,俭以养德!

浙公网安备 33010602011771号