Python:正则表达式-2

原文来自FishC,本文只是笔记而已。

Python通过re模块为正则表达式引擎提供一个接口,同时允许我们将正则表达式编译成模式对象,并用他们来进行匹配。

1)文中建议我们少用反斜杠,多使用原始字符串来表示正泽表达式(就是在字符串前边加上r);

2)创建模式对象:

import re
p=re.compile('[a-z]+')

+表示匹配一次或者多次。上面p有几个重要的方法:

    match()        判断一个正则表达式是否从开始处匹配一个字符串;

    search()        遍历,找到匹配的第一个位置

    findall()        遍历,找到所有位置,并以列表的形式返回

    finditer()        遍历,找到所有位置,并以迭代器的形式返回

3)空字符串无法匹配(会返回None);

m=p.match('fishc')

m作为匹配对象包含以下几个重要方法:

    group()        返回匹配的字符串

    start()            返回匹配的开始位置

    end()            返回匹配的结束位置

    span()            返回一个元祖表示匹配位置(开始,结束)

4)实际使用中通常会把结果储存在一个局部变量中,如上面的m,并检查其返回值是否为None。

p=re.compile(...)
m=p.match('string goes here')
if m:
    print('Match found:',m.group))
else:
    print('No match')

5)有两个方法可以返回所有的匹配结果,findall,finditer:


显然,使用findall()需要事先创建一个列表,而finditer()则是将匹配对象作为一个迭代器返回的,如果返回的列表很大,建议使用finditer()版本。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值