说说在 Python 中,如何找出所有字符串匹配
发布日期:2021-06-29 21:02:36
浏览次数:3
分类:技术文章
本文共 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’)]
转载地址:https://deniro.blog.csdn.net/article/details/103537548 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月06日 22时47分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【从零实现一个H.264码流解析器】(二):导入指数哥伦布解码实现并初步解析NALU
2019-04-30
【从零实现一个H.264码流解析器】(三):解析序列参数集SPS的句法元素
2019-04-30
【从零实现一个H.264码流解析器】(四):生成句法元素跟踪trace文件
2019-04-30
【音视频基础】(十一):YUV颜色空间之电视图像的数字化
2019-04-30
【音视频基础】(十二):YUV颜色空间之数字电视标准
2019-04-30
【音视频基础】(十三):YUV颜色空间之YUV和YCbCr
2019-04-30
【音视频基础】(十四):YUV颜色空间之图像子采样
2019-04-30
各种音视频编解码学习详解
2019-04-30
音视频基础
2019-04-30
流媒体协议HLS解析
2019-04-30
什么是AES算法?(整合版)
2019-04-30
Linux ALSA声卡驱动之一:ALSA架构简介
2019-04-30
在Linux中安装ALSA声卡驱动
2019-04-30
alsa 音频库的移植
2019-04-30
C语言:堆栈溢出一般是由什么原因导致的?
2019-04-30
C语言:线程同步之信号量(sem_init,sem_post,sem_wait)
2019-04-30
Linux ALSA声卡驱动之二:声卡的创建
2019-04-30
Linux ALSA声卡驱动之三:PCM设备的创建
2019-04-30