Python之re模块

re是一个使用频率很高的模块。

# python2
# -*- coding: utf-8 -*-

import re

str = 'ABC\\-001'
print str

str = r'ABC\-001'
print str

if re.match(r'\w{3}\\\-\d{3}', str):
    print 'good match'
else:
    print 'bad match'

src = 'hello\nworld'
print src

if re.match(r'hello\nworld', src):
    print 'good match'
else:
    print 'bad match'

if re.match(r'hello.world', src):
    print 'good match'
else:
    print 'bad match'

if re.match(r'hello.world', src, re.S):
    print 'good match'
else:
    print 'bad match'

src = r'hello\nworld'
print src

if re.match(r'hello\\nworld', src):
    print 'good match'
else:
    print 'bad match'

这个例子想说明的是,Python中的字符串如果使用'r'前缀,字符串中的内容就是本身,没有转义。

 

re模块的常用函数:

 

一个常用的flag是: 

 

 

如果一个正则表达式需要多次使用,可以预编译该表达式。

 

最后要说的是贪婪匹配和非贪婪匹配,看个例子:

str = r'102300'
print re.match(r'^(\d+)(0*)$', str).groups()
print re.match(r'^(\d+?)(0*)$', str).groups()

输出:

默认是贪婪匹配,通过加个?,可以使\d+执行非贪婪匹配。

 

 查看匹配结果除了groups(),还有个group()。

 

参考资料:

https://docs.python.org/2/library/re.html

 

转载于:https://www.cnblogs.com/gattaca/p/6842778.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值