python正则表达式
匹配字符
. 匹配除\n以外的任意一个字符
^ 从起始位置开始匹配
$ 从末尾开始匹配
* 匹配0到任意个字符
+ 匹配1到任意字符
? 匹配0到2个字符
{} 匹配任意字符
{1,2} 匹配1到2个字符
[] . $ + ? {} 这些在[]中不在有特殊意义 - \ ^具有意义
'''
\d 匹配任何十进制数 相当于[0-9]
\D 匹配任何非数字字符 相当于[^0-9]
\s 匹配任何空白字符 相当于 [\t\n\r\f\v]
\S 匹配任何非空白字符 相当于[^\t\n\r\f\v]
\w 匹配任何字母数字字符 相当于[a-z0-9A-Z]
\W 匹配任何非字母数字字符 相当于[^a-z0-9A-Z]
\b 匹配一个单词边界 匹配空格间的位置 res=re.findall(r'a\b','a bbccd')
'''
re中的方法
1.match
#match 匹配字符串的起始位置
res_match=re.match('com','comaa',re.S).group() #匹配所有字符,改变标志位
res_match=re.match('com','comaa').span() #从第几个位置到第几个位置
2.search
#search
res_search=re.search('com','aacom').group()
print(res_search)
3.sub subn
#sub 替换字符串subn
res_sub=re.sub('a','b','a 123 456 a',1) #最后一个参数是替换的次数
res_sub=re.subn('a','b','a 123 456 a') #返回一个元祖,包含替换后的元素和替换的次数
print(res_sub)
4.findall
res1=re.findall('a*a','bbaaaaaaa')
res=re.findall('a.*a','baaaccaa') #匹配以a开头一直到a结尾的字符
res=re.findall('a.+a','bbaaaccaa')
res=re.findall('a.?a','bbaaaacc')
res=re.findall('a.{2}a','bbaaacc') #2次
res=re.findall('a.{,2}a','bbaaacc') #0到2次
res=re.findall('ab{1,2}a','bbabbaacc') #b 1到2次
5.split
#split
res_split=re.split('\d','one1two2',1) #代表分割的次数
print('hh',res_split)
6.compile
#compile text='aa9b' regx=re.compile(r'a\d') print(type(regx)) #对象 print(regx.findall(text)) #多次调用更高效
python re 转义
#python re 转义 #\\\\ 到re \\ 正则匹配后 \ #所以加上原生字符串r
正则分组
#正则分组
#去已经匹配到数据中在做匹配
res=re.findall('a([1-9])d','a3d')
res=re.match('a(?P<name>.)a','afa bb cc')
print(res.group()) #获取所有结果
print(res.groups()) #获取分组结果,以元组展示
print(res.groupdict()) #获取分组结果,以字典展示
posted on 2017-01-22 16:03 xc-suibijilu 阅读(149) 评论(0) 收藏 举报
浙公网安备 33010602011771号