标签:返回 对象 www. flags 建模 tail center net 放弃
正则表达式:匹配文本片段的模式。
(pattern)*:允许子模式出现0次或多次
(pattern)+:允许子模式出现1次或多次
(pattern){m,n}:允许模式重复m到n次
re模块的常用函数
函数 | 描述 |
compile(pattern[,flags]) |
根据包含正则表达式的字符串创建模式对象 |
search(pattern,string[,flags]) |
在字符串中寻找模式 |
match(pattern,string[,flags]) |
在字符串开始处匹配模式 |
split(pattern,string[,maxsplit = 0]) |
根据模式的匹配项来分割字符串 |
findall(pattern,string) |
列出字符串中模式的所有匹配项 |
sub(pat,repl,string[,count = 0]) |
将字符串中所有pat的匹配项用repl替换 |
escape(string) |
将字符串中所有特殊正则表达式字符转义 |
对于re模块中的匹配函数而言,匹配成功则返回MatchObject对象,这些对象包括匹配模式的子字符串信息,还包含了哪个模式匹配了哪部分的信息,这些“部分”叫做组,组就是放置在元组括号内的子模式。
模式‘there (was a (wee) (cooper)) who (lived in fyfe)’包含以下组:
0 there was a wee cooper who lived in fyfe
1 was a wee cooper
2 wee
3 cooper
4 lived in fyfe
re匹配对象的重要方法:
方法 |
描述 |
group([group1,……]) |
获取给定子模式(组)的匹配项 |
start([group]) |
返回给定组的匹配项的开始位置 |
end([group]) |
返回给定组的匹配项的结束位置 |
span([group]) |
返回一个组的开始和结束位置 |
>>> import re >>> m = re.match(‘www\.(.*)\..{3}‘,‘www.python.org‘) >>> g1 = m.group(1) >>> m.group(1) ‘python‘ >>> m.end(1) 10 >>> m.span(1) (4, 10) >>> m.group(0) ‘www.python.org‘
在重复运算符后增加一个‘?’就把重复运算变成非贪婪版本
re.split()函数进行切割时,如果模式中含有小括号,那么小括号中内容将会在每一个子字符串之间存在。
re.split(pattern,string[,maxsplit = 0])
split函数还有一个限制分割次数的参数maxsplit
re.findall函数以列表形式返回给定模式的所有的匹配项。
re.findall(pattern,str)
re.sub()函数使用指定内容替换匹配到的最左端并且非重叠的子字符串。
re.sub(pat,repi,str[,count = 0])
sub()函数可以通过组来替换,在替换内容中使用‘\\n’形式出现的任何转义序列都会被模式中与组n匹配的字符串替换掉。
例如将文本中的*something*替换成<em>something</em>
>>> pat = r‘\*([^\*]+)\*‘ >>> re.sub(pat,r‘<em>\1</em>‘,‘hello *world*!‘) ‘hello <em>world</em>!‘ >>> pat =re.compile(r‘\*([^\*]+)\*‘) >>> re.sub(pat,r‘<em>\1</em>‘,‘hello *world*!‘) ‘hello <em>world</em>!‘
重复运算符是贪婪的,它会进行尽可能多的匹配。
>>> pat = r‘\*(.+)\*‘ >>> re.sub(pat,r‘<em>\1</em>‘,‘hello *world*!‘) ‘hello <em>world</em>!‘ >>> re.sub(pat,r‘<em>\1</em>‘,‘*hello* *world*!‘) ‘<em>hello* *world</em>!‘
此时就需要用到非贪婪模式,即在重复匹配符后面增加一个‘?’
>>> pat = r‘\*(.+?)\*‘ >>> re.sub(pat,r‘<em>\1</em>‘,‘hello *world*!‘) ‘hello <em>world</em>!‘ >>> re.sub(pat,r‘<em>\1</em>‘,‘*hello* *world*!‘) ‘<em>hello</em> <em>world</em>!‘
点击查看re.sub()函数详解
re.escape函数是一个是一个将所有可能被解释为正则运算符的字符进行转义的函数。
>>> re.escape(‘hello.python‘) ‘hello\\.python‘
正则从暑假看到现在,断断续续,不要放弃啊
标签:返回 对象 www. flags 建模 tail center net 放弃
原文地址:http://www.cnblogs.com/HJhj/p/7454037.html