Python核心编程(第十五章)--正则表达式

来源:互联网 发布:网络言论自由的例子 编辑:程序博客网 时间:2024/06/05 07:27
正则表达式为高级文本模式匹配
[A-Za-z]\w+:第一个字符是字母,由大写字母A~Z或是a~z组成,它后面至少跟有一个(或更多)由字母或数字组成的字符(\w)
搜索和匹配的区别:

正则表达式中常见的符号和字符:


管道符号(|),它的意思选择被管道符号分隔的多个不同的正则表达式中的一个
匹配任意一个单个的字符(.):比如f.o匹配 在'f'和'o'中间的任意字符
从字符串的开头或结尾或单词边界开始匹配(^/$∧b∧ B):
(^Caret)或(\A)从字符串开头开始匹配
($)或\Z是用来匹配字符串的结尾
\b and \B用来匹配单词边界,区别是\b匹配的是一个单词边界,\B只匹配出现在一个单词中间的模式
创建字符类([]):使用方括号的正则表达式会匹配方括号里的任何一个字符
比如:b[aeiu]t  匹配bat,bet,bit,but
指定范围(-)和否定(^):A-Z、a-z、0-9代表大写字母  

最常用的正则表达式符号:"*","+","?"
"*"用于匹配它左边正则表达式出现0次或0次以上的情况
"+"用于匹配左边的正则表达式至少出现一次的情况
"?"用于匹配左边的正字表达式出现0次或1次的情况
"{}"括号里可以是单个的值如{N},表示匹配N次出现;也可以是一对值{M,N},表示匹配M次到N次出现
特殊字符表示,用\d表示十进制数字,用\w表示整个字符数字的字符集,\s表示空白符
圆括号():对正则表达式进行分组
re模块:核心函数和方法

使用compile()编译正则表达式
匹配对象:这种对象是在match()或search()被成功调用之后返回的结果,其中匹配对象有两个主要方法:group()和groups()
group()方法返回所有匹配对象或者根据要求返回某个(如果正则表达式没有子组,将返回全部匹配对象)
groups()返回一个包含唯一或所有子组的元组(如果正则表达式没有子组,将返回一个空组)
用match()匹配字符串:
match()函数从字符串的开头开始对模式进行匹配,匹配成功返回匹配对象,否则返回None
search()在一个字符串中查找,与match不同的是从左到右的搜索
在正则表达式中想要搜索某些符号需要反斜号(/)进行转义     

四个re模块函数和regex方法:findall()、sub()、subn()、split()
findall()用于非重叠地搜索某字符中一个正则表达式模式出现的情况(findall()总返回一个列表
sub()和subn()用于搜索和替换:将某字符串中所有匹配正则表达式模式的部分进行替换(subn()还返回替换的次数)
原始字符串(raw strings):使用原始字符串是避免ASCⅡ字符和正则表达式特殊字符间产生冲突,用r

贪婪匹配:
正则表达式本身默认是贪心匹配的,会尽量“抓取”满足匹配的最长字符串
非贪婪操作符"?"作用是要求正则表达式匹配的字符越少越好
0 0
原创粉丝点击