re
re--正则表达式--字符串处理
使用re.compile()可以得到一个RegexObject对象
RegexObject的有两种使用方式。①作为参数传给处理函数;②调用RegexObject方法处理字符串。
重点:match和search的区别。findall和finditer的区别。
单次匹配(match,search)->Match和多次匹配(findall和finditer)->list的区别。
正则表达式符号和语法规则。
Match的方法span和group和groups的区别。
flags参数标记:re.l--不区分大小写
---------------------------------------------------------------------------------------------------------
sub的repl的函数用法。(?P<extract_str_name><express>)前面一部分是标记。
repl参数传递一个函数,函数需要定义一个参数用来接收<express>匹配到的Match,在函数中用group('extract_str_name')使用这个值。处理后返回结果替换。
1.re.match和re.search
match特点:pattern必须从string的起始位置开始描述(pattern的起始表达和string不匹配直接返回异常)
search特点:pattern参数可以从任意位置开始匹配。
group方法:返回pattern匹配到的整个字符串
groups方法:返回元组,包含pattern内每个(<express>)匹配到的字符串小组。(pattern表达式中没有(<express>)返回的是空元组)
span方法:以索引号的形式返回
无匹配结果返回None
3.re.findall和re.finditer
findall参数:pattern,string,pos,endpos
pos/endpos:限制起始位置和结束位置
finditer参数:pattern,string。以迭代器形式返回
5.re.sub
sub参数:pattern,repl,sring,count
repl:repl替换pattern表达式中的(<express>)匹配到的字符串对象。可以通过count限制替换次数
count:0表示替换所有,默认为0。
6.re.split
split参数:pattern,string,maxsplit
maxsplit:0为不限制次数,默认为0
用pattern匹配到的str,切割成列表
7.re.compile
参数:pattern
将一个pattern字符串编译成正则表达式对象
8.正则表达式符号:
字符 -----------------------------------------------------------------------------------------------------
字符类表示符号:任意(.),数字(/d),空白符(/s),数字字母加下划线(/w)。
字符类:[a-zA-Z0-9_] = /w [^a-zA-Z0-9_] = /W [Pp] ...
(<express>) 括号小组表达式
字符类:为单个字符表示法。括号小组表达式:为长字符串表示法。
都可以通过[*+?]限制次数
次数 -------------------------------------------------------------------------------------------------------
* 任意次数 + 正数次数 ? 布尔0/1次数 {n,m}自定义次数
(作用于前一组字符(单字符/长字符串)对象,单个字符或者一个括号小组表达式)
位置 -------------------------------------------------------------------------------------------------------
匹配位置标记:^标记匹配开头,标记匹配结尾$
总结 -------------------------------------------------------------------------------------------------------
中括号表示字符类,部分字符类有专门的表示方式,四种匹配次数限制。