首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python实现正则

python 通过 re 模块实现对正则表达式的支持,一般先将正则表达式的字符串形式编译为 Pattern 实例(re.compile(string[,flag])),然后使用 Pattern 实例处理文本并获得匹配结果,最后使用 Match 实例获得信息。

python 中常用的实现正则表达式匹配函数有两种调用方式 re 调用和 pattern 调用。

1.re 调用

1.re.match(pattern, string[,flags])

2.re.search(pattern, string[,flags])

3.re.split(pattern, string[,maxsplit[,flags]])

4.re.findall(pattern, string[,flags])

5.re.finditer(pattern, string[,flags])

6.re.sub(pattern, repl, string[,flags[,count]])

7.re.subn(pattern, repl, string[,flags[,count]])

2.pattern 调用

1.pattern.match(string[,flags])

2.pattern.search(string[,flags])

3.pattern.split(string[,maxsplit[,flags]])

4.pattern.findall(string[,flags])

5.pattern.finditer(string[,flags])

6.pattern.sub(repl, string[,flags[,count]])

7.pattern.subn(repl, string[,flags[,count]])

其中,flags 参数表示匹配模式,取值有以下几种情况,并且可以使用 "|" 同时使用多种匹配模式。

1.re.I: 忽略大小写

2.re.M: 多行模式,改变 "^" 和 "$" 的含义

3.re.S: 点任意匹配模式,改变 "." 的含义

4.re.L: 使预定义字符类 \w\W\b\B\s\S 取决于当前区域设定

5.re.U: 使预定义字符类\w\W\b\B\s\S\d\D 取决于 unicode 定义的字符属性

6.re.X: 详细模式,这个模式下正则表达式可以是多行的,忽略空白符,并可以加入注释

以上 7 个函数在 re 模块中进行搜索匹配,如果需要获得匹配的数据,这时可以利用 Match 对象,Match 对象保存了正则表达式匹配的过程。Match 对象的属性有:

1.string: 匹配时使用的文本。

2.re: 匹配时使用的 pattern 对象。

3.pos: 文本中正则表达式开始搜索的索引。

4.endpos: 文本中正则表达式结束搜索的索引。

5.lastindex: 最后一个被捕获的分组在文本中的索引。

6.lastgroup: 最后一个被捕获的分组的别名。

7.group(group1,...): 获得一个或多个分组截获的字符串。

8.groups(): 以元组形式返回全部分组截获的字符串。

9.groupdict(): 返回以有别名的组的别名为键,以改组截获的子串为值的字典,没有别名的组不包含在内。

10.start(group): 返回指定的组截获的子串在 string 中的起始索引。

11.end(group): 返回指定的组截获的子串在 string 中的结束索引。

12.span(group): 返回 (start(group), end(group))。

13.expand(template): 将匹配到的分组代入 template 中然后返回。

示例如下:

运行结果如下:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190108G18C8100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券