python re模块处理正则表达式

python支持的正则表达式和语法

1. 字符

  • .     匹配任意除换行符\n外的字符,如abc匹配abc,不匹配末尾的换行符
  • \     转移字符,使后一个字符改变原来的意思,a\.bc匹配a.bc
  • [...] 字符集(字符类)。对应字符集中的任意字符,第一个字符使^则取反,a[bc]d匹配abd,acd

2. 预定义字符集

  • \d     数字[0-9]
  • \D     非数字[^\d]
  • \s     空白字符[空格\t\r\n\f\v]
  • \S     非空白字符[^\s]
  • \w     单词字符[a-zA-Z0-9]
  • \W     非单词字符[^\w]

3. 数量词

  • *            匹配前一个字符0或无限次。al*b匹配ab、alb、allb
  • +           匹配前一个字符1或无限次。al+b匹配alb、allb
  • ?          匹配前一个字符0或1次。al?b匹配ab、alb
  • {m}        匹配前一个字符m次。al{3}b匹配alllb
  • {m,n}     匹配前一个字符m至n次。al{2,3}b匹配allb、alllb

4. 数量词

  • ^      匹配字符串开头,如^abc匹配以abc开头的字符串。
  • $      匹配字符串结尾,如xyz$匹配以xyz结尾的字符串。
  • \A     仅匹配字符串开头,如\Aabc。
  • \Z     仅匹配字符串结尾,如Xyz\Z
  • \B     匹配\w和\W之间,即匹配单词边界匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

python的re模块

re模块提供了两种不同的原始操作,match和search。match是从字符串的起点开始做匹配,而search是对字符串做任意匹配。常见的re方法:

  • re.compile(pattern,flags=0)编译正则表达式模式,返回一个对象的模式。

  • re.match(pattern, string, flags=0)决定RE是否在字符串刚开始的位置匹配
  • re.search(pattern, string, flags=0)在字符串内查找模式匹配,只要找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

match和search一旦匹配成功,就是一个match object对象,而match object对象有以下方法:

group() 返回被 RE 匹配的字符串

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

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

span() 返回一个元组包含匹配 (开始,结束) 的位置

group() 返回re整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。

  • re.findall(pattern, string, flags=0)获取字符串中所有匹配的字符串,返回一个列表。
  • re.finditer(pattern, string, flags=0)返回一个顺序访问每一个匹配结果(Match对象)的迭代器。
  • re.split(pattern, string[, maxsplit])使用的匹配的子串分割原始字符串,并返回字符串列表
  • re.sub(pattern, repl, string, count)使用特定子串repl替换匹配的字符串string
  • subn(pattern, repl, string, count=0, flags=0)返回替换次数

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值