python 正则笔记

python 正则上网资料很多, 但总体比较乱, 没一个梳理思路, 所以自己梳理下自己思路


首先是元字符, 元字符就是正则的核心,  元字符即是用任意字符来匹配的一个规则, 如果符合则进行其它操作.

最常用的即 

$ 结尾  

^开头(在[]是取非的意思)

\转义 及一系列的常用字符集, 网上很全

重复规则

*  前面的规则匹配 零次或多次(可以表达可有可无的规则)

+ 前面的规则匹配至少一次

? 前一字符可有可无

可以用[ ] 表现可取范围, eg:  [a-z]

可以用{ } 里边填数来表示前边规则重复的次数,  两位数则是一个区间

eg1:  \d{3} 意思是给我找三个数字 

eg2: \w{3,5} 给我找3个字符,但不能超过5个啊

他们之间的等价:    {0,}等同*  {1,}等+  {0,1}等?


其它可参考http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

 eg: 010-12344 正则可以用 ^010-\d{5} 来表示:  要以010开头,后边是5个数字


贪婪的最大匹配

eg:  r=r'ab+'     匹配'abbbbbbb'  结果是'abbbbbbb' ,  思想是, ab满足了,看看后边还行不行

非贪婪的最小匹配

eg: r=r'ab+?'     匹配'abbbbbbb'  结果是'ab' ,  思想是, ab满足了, 恩 我满足了立刻返回


python 细节

用re.compile()提前编译成对象可以提高性能 , 匹配字符串前边加r 可以防止你的 转义字符 \ 被转义

re.match 只从开头判断是否整体规则, search是任何位置发现都会找到

re.findall返回的是迭代对象 

re.sub 替换用的


更多深入学习可以参考

http://blog.csdn.net/whycadi/article/details/2011046

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值