[Python]正则课程 --再次回顾

正则表达式的最大匹配个数,65535? re.DEBUG 可以查询到最大匹配个数,其实是返回针对每个regex的debug信息 


使用compile编译的表达式时会把最新的几个缓存起来,所以就可以同时使用几个正则表达式而不需要担心正则的编译问题

在re模块中的几个对象

re.RegexObject  是编译后的正则表达式对象,方法上和直接使用re模块很多都是类似的

常用的方法和属性

search  查找 如果没有匹配就会返回N0ne 

match   查找 如果没有匹配就会返回None

split   分割

findall  直接匹配返回list

finditer 返回的是个iterator

sub    查找并替换  



flags 类型 

groups   需要抓取的有几个串

pattern  返回的是表达式本身

 

re.MatchObject 当match或者search方法匹配到以后返回的对象

常用的方法和属性

group  只返回能匹配到的值

groups  返回匿名分组匹配返回值元组

groupdict 返回命名分组匹配返回值的字典

start  匹配成功开始位置

end   匹配成功结束位置

re 属性:返回使用的正则对象



分组: 有匿名分组 和 命名分组

 


疑问:


?经常对比的就是search 和 match的: match从字符串的开始匹配 search任意位置开始匹配

? 贪婪模式和非贪婪模式字面意思很好理解,但是对匹配结果准确把握不怎么容易,
准备单门找点资料总结下

? 字符边界匹配, ^ $ \A \Z \b有什么不同 

?不同匹配参数的不同匹配模式


tips:

 

In [182]: p = re.compile(r'(\w+) (\w+)')

In [183]: s = 'ni hao,good boy'

In [184]: print p.sub(r'\2 \1',s)

hao ni,boy good


 





你可能感兴趣的:(python)