博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
说说在 Python 中,如何找出所有字符串匹配
阅读量:1904 次
发布时间:2019-04-26

本文共 1001 字,大约阅读时间需要 3 分钟。

Regex 对象有一个 findall() 方法,它会返回包含所查找字符串的所有匹配。这与 search() 方法明显不同,search() 将返回一个 Match 对象,其中包含被查找字符串中的 “ 第一次 ” 匹配文本。请看以下示例,注意区分:

phone_num_regex = re.compile(r'\d\d\d\d-\d\d\d\d\d\d\d\d')mo = phone_num_regex.search('我的联系号码为: 0591-83822032;另一个号码是:0591-83822033.')print('查到的联系号码: ' + mo.group())phone_num_regex = re.compile(r'\d\d\d\d-\d\d\d\d\d\d\d\d')phone_nums = phone_num_regex.findall('我的联系号码为: 0591-83822032;另一个号码是:0591-83822033.')print('查到的联系号码: ' + str(phone_nums))

运行结果:

查到的联系号码: 0591-83822032

查到的联系号码: [‘0591-83822032’, ‘0591-83822033’]

如果调用 findall 的正则表达式不存在分组(比如上例),那么方法 findall() 将返回一个匹配字符串的列表,例如上例的 [‘0591-83822032’, ‘0591-83822033’]。

如果调用 findall 的正则表达式存在分组,那么方法 findall() 将返回一个字符串元组的列表(每个分组对应一个字符串),请看下例:

phone_num_regex = re.compile(r'(\d\d\d\d)-(\d\d\d\d\d\d\d\d)')phone_nums = phone_num_regex.findall('我的联系号码为: 0591-83822032;另一个号码是:0591-83822033.')print('查到的联系号码: ' + str(phone_nums))

运行结果:

查到的联系号码: [‘0591-83822032’, ‘0591-83822033’]

查到的联系号码: [(‘0591’, ‘83822032’), (‘0591’, ‘83822033’)]

转载地址:http://drbcf.baihongyu.com/

你可能感兴趣的文章
1.jdk8中Stream基础操作
查看>>
1.arthas基础
查看>>
nginx 安装
查看>>
1.nginx常用命令
查看>>
2.nginx.conf配置文件
查看>>
1.linux grep文件查询小结
查看>>
kafka 集成springboot
查看>>
3.docker 常用的操作命令
查看>>
4.docker小实操 nginx容器
查看>>
1.mysql 常用的操作语句
查看>>
Rabbitmq集成springboot
查看>>
5.docker portainer可视化面板安装
查看>>
6.docker数据卷基础
查看>>
6.1docker 数据卷实战mysql
查看>>
12.Dokcerfile 中CMD和ENTRYPOINT命令区别
查看>>
13.发布镜像到dockerhub
查看>>
1.Jenkins基础
查看>>
1.springboot-cloud-alibaba版本对应关系
查看>>
1.项目中高级编码之缓存get/set
查看>>
1.项目中高级编码之jdk8特性运用
查看>>