分享好友 最新动态首页 最新动态分类 切换频道
【Python】从文本字符串中提取数字、电话号码、日期、网址的方法汇总(全!)
2024-12-26 10:34

我们在做数据清洗的时候,有时候会遇到将一堆文本中提取我们需要的内容,最常见的是,从一大段文本中提取出数字、电话号码、日期、网址等。而在Python中,正则表达式re,则可以满足我们从文本中提取数字、电话号码和日期等需要。

以下是一些示例代码

1.1. 使用re.findall提取数字

从文本中提取数字,可以用findall来查找

 

1.2. 使用re.compile提取数字

如果我们只是单纯使用 来提取数字,整数和浮点数会分开来提取,在处理数字的时候就会很不方便。

因此,我们在上面的基础上,结合正则表达式分组来查找, 编译后的正则表达式对象可以使用groupindex属性来访问分组的名称和索引。可以提高正则表达式的匹配效率。

 

groupindex属性:在Python中,正则表达式的groupindex属性是一个字典,它存储了正则表达式中所有命名捕获组(Named Capturing Groups)的名称和它们对应的索引。每个命名捕获组都有一个唯一的名称,groupindex属性将这些名称映射到它们在正则表达式中的索引。
也可以创建一个命名来捕获组,详情可以看下文的从文本中提取日期的例子。

我们国家手机号码的格式, 通常是以1开头,第二位是3、4、5、6、7、8或9,后面跟着9位数字。一个常见的正则表达式模式匹配中国大陆的手机号码如下

1[3-9]d{9}

解释一下这个正则表达式

1:手机号码以数字1开头。
[3-9]:第二位数字是3到9之间的任意一个数字。
d{9}:随后是9个数字,d是数字的简写,{9}表示重复9次。

以下是使用Python re 模块提取手机号码的示例代码

 

这段代码会输出文本中所有的手机号码。re.findall 函数返回一个列表,包含所有匹配的手机号码字符串。

如果要匹配更复杂的手机号码,例如支持其他国家的手机号码或者更复杂的格式,你可能需要调整正则表达式以适应不同的规则。

注意:由于手机号码的格式可能因国家和地区而异,如果我们处理国际手机号码,可能需要使用更通用的正则表达式,例如

+?d{1,3}?[-.s]?(?d{1,4}?)?[-.s]?d{1,4}[-.s]?d{1,4}[-.s]?d{1,9}

这个表达式尝试匹配包括国家代码,和各种分隔符的国际手机号码,但可能不会覆盖所有情况,并且可能需要根据具体需求进行调整。

日期的格式也非常多样,这里以一种常见的格式为例

3.1. 使用re.findall提取日期

如果遇到的文本中的日期是倒叙,可以使用的方法

 

3.2. 使用re.search筛选日期

re.search可以自定义数字的长度来匹配固定的日期格式,比较清晰明了

 

不过,正则表达式需要根据实际的文本格式进行调整。如果我们需要匹配更复杂的日期格式,可能需要编写更复杂的正则表达式,或者使用日期解析库如 dateutil。

3.3. 结合 dateutil 解析日期

如果你想要更智能地解析日期,可以使用 库,它能够识别多种日期格式

 

3.4.使用 re.compile 获取日期

使用自定义的 带有命名捕获组的正则表达式,以年、月、日来命名这个组,最后的形式以列表中的元组来展示

 
 

我们有时候需要整理网址的时候,会遇到一些不完整的网址,需要做拼接,或者再处理
如这个例子

打算把【…/Company_View/Default/f/f99fa474-d1f1-484e-8953-006bf6dfaec0.shtml 】
整理成【https://Company_View/Default/f/f99fa474-d1f1-484e-8953-006bf6dfaec0.com】

经过观察,我们需要把前面的多余的符号和后缀去掉,然后拼接需要的https、com 就好,一下是处理的过程

 

这里使用了,字符串的的和的方法。我们先索引第一个“/”的位置,从这个位置到最后一个“.”的位置,用是从右边开始数起来。

总结:正则表达式很强大,但也需要仔细地编写以避免错误匹配哦

附录
如果要给电话号码做隐私处理,加一个遮罩效果


最新文章
辽宁优化搭建,企业竞争力提升之道
本文深入解析辽宁优化搭建服务,涵盖从策略制定到技术实施的全方位指导,助力企业打造高效、易用的,提升市场竞争力,实现营销的全面突破。辽宁优化与搭建服务的价值所在挑选辽宁优化与搭建服务时的关键考量在互联网高速发展的今天,企业越
轮回造个伤感的句子说说短句(时间轮回伤感句子简短)
1 . 有时候,我想消失一下,然后看看是否会有人想念我。2 . 你塞满我整个过去,却在我的未来永远地缺席。3 . 胡雁哀鸣夜夜飞,胡儿眼泪双双落。6 . 在接下来的时光里,我愿放慢脚步,用理智的思维,轻盈从容的踏过花开的温暖,在芬芳的世界
银联国际
银联国际是中国银联旗下的全球支付网络服务提供商。作为中国最大的银行卡支付网络,银联国际致力于为全球客户提供安全、便捷的支付解决方案。银联国际通过建立与全球银行、机构和支付网关的合作关系,构建了一个强大的全球化支付网络。这一
微信怎么创建小程序
随着移动互联网的飞速发展,微信小程序已成为许多企业和个人展示服务、推广品牌的重要平台。那么,如何在微信上创建小程序呢?下面,我们将分步骤为大家详细介绍。**一、注册小程序账号**首先,你需要进入微信公众平台官网,点击右上角的“
在 Linux 上搭建 Java Web 项目环境(最简单的进行搭建)
要在 Linux 上安装的程序有 1.JDK (要想运行 java 程序 JDK 是必不可少的) 2.Tomcat (HTTP 服务器,是管理 Web 项目的常用工具) 3. mysql (数据库)        博主使用的 Linux 发行版是 centos ࿰
小红书关键词检测,善于用工具小红书运营推广效果事半功倍
小红书作为一个年轻化、内容多元的生活方式分享平台,越来越多的企业开始重视其内容营销。然而,在数以亿计的笔记中脱颖而出,不仅需要匠心独运的内容创作,更离不开精准的关键词检测与优化。本文七月笙笙July Brand将通过对小红书关键词检
航海王壮志雄心克洛怎么样 航海王壮志雄心克洛详细介绍
在该游戏中,玩家可去解锁许多不同的角色,并且在技能定位以及玩法上也是十分出色,因此吸引了许多的玩家加入其中,本期小编主要是来说说航海王壮志雄心克洛,作为一个热血风格的角色,它的怒气可是能自然增长的,朋友们近期若是对于此很是
微信广告的投放逻辑,看这篇就够了!
数英用户原创文章,转载请遵守底部规范作为移动端的巨大流量入口,如何在既保证用户使用体验的同时也能带来其商业价值,一直都是腾讯,也是“微信之父”张小龙探寻的方向。众所周知,互联网的变现方式除了电商,最为普遍的就是广告流量的变
漫蛙最新最新入口在哪里?如何快速进入最新平台获取最新内容?
如果你正在寻找“漫蛙最新最新入口”,那么你来对地方了。漫蛙是一个非常受欢迎的在线平台,提供丰富的内容和服务。无论你是想了解漫蛙的最新资讯,还是需要直接访问其最新入口,这篇文章将为你提供详细的指导,帮助你快速找到正确的入口。
相关文章
推荐文章
发表评论
0评