标签:
import re
正则表达式:
常用的符号:点号 问号 星号 和小括号
.:匹配任意字符,换行符\n除外
——点号可以理解为占位符,一个点号匹配一个字符。
*:匹配前一个字符0次或无限次
?:匹配前一个字符0次或者1次
.*:贪心算法(尽可能多的匹配到数据)
.*?:非贪心算法(尽可能多的找到满足条件的组合)
():括号内的数据将会作为结果返回。
常用的方法:findall,Search,Sub
findall:匹配所有符合规律的内容
Search:匹配并提出第一个符合规律的内容,返回一个正则表达式对象
Sub:替换符合规律的内容,返回替换后的值
万能表达式:
(.*?)
多行表达式的匹配
re.S
s=‘‘‘sdfhajkdxxluhuanxx lsdhfxxwangpiaoxxsjdkf‘‘‘ sub=re,findall(‘xx(.*?)xx‘,s,re.S) //findall和search的区别 sub= re.search(‘xx(.*?)xxdsfaxx(.*?)xx‘,s,re.S).group(1) sub= re.findall(‘xx(.*?)xxdsfaxx(.*?)xx‘,s,re.S) print sub[0][1] //在字符串中存在多行满足匹配规则。
小贴士:
匹配数字
a=sdfasd123415ksadfj2345kdsafj
b=re.findall(‘(\d+)‘,a)
匹配原则:
findall 和search匹配使用
先抓大再抓小
标签:
原文地址:http://my.oschina.net/u/1242038/blog/504941