前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Day16正则表达式

Day16正则表达式

作者头像
林清猫耳
发布于 2018-04-26 07:35:16
发布于 2018-04-26 07:35:16
56700
代码可运行
举报
文章被收录于专栏:我爱编程我爱编程
运行总次数:0
代码可运行

正则表达式(Regular Expression)的主要功能是从字符串(string)中通过特定的模式,搜索希望找到的内容。比如想找到小说中的所有人名,找到字符串中包含的数字。这种格式化的搜索可以写成正则表达式。Python中可以使用包re来处理正则表达式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#  正则表达式用某些符号代表单个字符:
.            # 任意的一个字符
a|b          # 字符 a 或字符 b
[afg]        # a 或者 f 或者 g 的一个字符
[0-4]        # 0-4 范围内的一个字符
[a-f]        # a-f 范围内的一个字符
[^m]         # 不是m的一个字符
\s           # 一个空格
\S           # 一个非空格
\d           # 一个数字,相当于[0-9]
\D           # 一个非数字, 相当于[^0-9]
\w           # 数字或字母,相当于[0-9a-zA-Z]
\W           # 非数字非字母,相当于[^0-9a-zA-Z]

正则表达式还可以用某些符号来表示某种形式的重复,这些符号紧跟在单个字符之后,就表示多个这样类似的字符:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*            # 重复超过0次或更多次
+            # 重复1次或超过1?            # 重复0次或1{m}          # 重复m次。比如,a{4}相当于aaaa,再比如,[1-3]{2}相当于[1-3][1-3]
{m,n}        # 重复m到n次。比如说a{25}表示a重复25次。
             # 小于m次的重复,或者大于n次的重复都不符合条件

还有位置相关的符号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
^            # 字符串的起始位置
$            # 字符串的结尾位置
进一步提取
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
content = 'abcd_output_1994_abcd_1912_abcd'

正则表达式: 'output_\d{4}' 可以找到 'output_1994'。 但如果想进一步提取出1994本身,则可以在正则表达式上给目标加上括号: output_(\d{4}) 用括号()圈起来的正则表达式的一部分,称为群(group)。一个正则表达式中可以有多个群。 我们可以用group(number)的办法来查询群。需要注意的是,group(0)是整个正则表达的搜索结果。group(1)是第一个群,以此类推。 还可以用 (?P<name>...) 为group命名

re模块

Python提供re模块,包含所有正则表达式的功能。由于Python的字符串本身也用\转义,所以要特别注意:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = 'ABC\\-001' # Python的字符串
# 对应的正则表达式字符串变成:
# 'ABC\-001'

因此我们强烈建议使用Python的r前缀,就不用考虑转义的问题了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = r'ABC\-001' # Python的字符串
# 对应的正则表达式字符串不变:
# 'ABC\-001' 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
re.search(pattern, string)    # 搜索整个字符串,直到发现符合的子字符串
re.match(pattern, string)     # 从头开始检查字符串是否符合正则表达式。
                              # 必须从字符串的第一个字符开始就相符
切分字符串

用正则表达式切分字符串比用固定的字符更灵活,请看正常的切分代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 'a b   c'.split(' ')
['a', 'b', '', '', 'c']

嗯,无法识别连续的空格,用正则表达式试试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> re.split(r'\s+', 'a b   c')
['a', 'b', 'c']

无论多少个空格都可以正常分割。加入,试试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> re.split(r'[\s\,]+', 'a,b, c  d')
['a', 'b', 'c', 'd']

再加入;试试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> re.split(r'[\s\,\;]+', 'a,b;; c  d')
['a', 'b', 'c', 'd']
贪婪匹配

正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符。举例如下,匹配出数字后面的0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> re.match(r'^(\d+)(0*)$', '102300').groups()
('102300', '')

由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。 必须让\d+采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0匹配出来,加个?就可以让\d+采用非贪婪匹配:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> re.match(r'^(\d+?)(0*)$', '102300').groups()
('1023', '00')

groups是所有的组,没括号没分组

编译

当我们在Python中使用正则表达式时,re模块内部会干两件事情: 编译正则表达式,如果正则表达式的字符串本身不合法,会报错; 用编译后的正则表达式去匹配字符串。 如果一个正则表达式要重复使用几千次,出于效率的考虑,我们可以预编译该正则表达式,接下来重复使用时就不需要编译这个步骤了,直接匹配:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import re
# 编译:
>>> re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$')
# 使用:
>>> re_telephone.match('010-12345').groups()
('010', '12345')
>>> re_telephone.match('010-8086').groups()
('010', '8086')

编译后生成Regular Expression对象,由于该对象自己包含了正则表达式,所以调用对应的方法时不用给出正则字符串。 最后贴上: http://mp.weixin.qq.com/s/SA3OnfZD-cFVi7IVfKwKnw

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.04.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
人工智能审核视音频有什么好处?智能审核有哪些好的技巧?
众所周知,现在国内主流的音频视频传播平台非常多,每个平台都有非常多的用户,每天都会上传无数的音频内容和视频内容,而国家目前对于用户自动上传的内容有非常严格的审核要求,这也导致许多主流网站的审核压力特别大,因为网站一旦涉及传播一些违法内容,不仅会对用户造成影响,还有可能给网站带来损失。人工审核费时费力,而且无法应对海量的内容,所以现在很多网站使用人工智能审核视音频。人工智能审核视音频有什么好处呢?
用户8715145
2021/12/30
2.2K0
抖音推荐算法总结[通俗易懂]
抖音推荐算法究竟如何是做抖音短视频运营的同学非常关心的问题,抖音官方并没有披露正式的算法,但凭借着民间的智慧和官方披露的部分信息中,网友已经总结出抖音推荐算法的秘密。这里整理资料如下:
全栈程序员站长
2022/07/26
9.9K0
抖音推荐算法总结[通俗易懂]
人工智能时代,如何做好内容审核和流量反作弊?
人工智能时代,如何做好内容审核和流量反作弊?
数据猿
2018/05/31
3.1K0
抖音是如何做内容推荐的?
抖音推荐算法究竟是如何推荐和运作的?是做抖音短视频运营的同学非常关心的问题,抖音官方并没有披露正式的算法,这里根据实际运营观察和官方披露的部分信息,总结出抖音推荐算法的秘密。相关资料整理如下:
肉眼品世界
2022/06/15
1.3K0
抖音是如何做内容推荐的?
坚守音视频领域多年:是偶然,也是必然
LiveVideoStack:华平你好,我们是在2017年认识的,当时你还在“WiFi万能钥匙”,说说你的近况吧。
LiveVideoStack
2020/05/26
1.1K0
人工智能审核短视频的什么方面 智能审核会出错吗
随着人们生活水平变得越来越好,很多娱乐项目都逐渐走进人们的日常生活中,尤其是现在最火爆的视频,这也导致很多视频平台现世。这些视频平台都有自己的一套审核机制,会对视频创作者发布的视频进行一系列的审核,审核通过才会展现给各位看。那么人工智能审核短视频的什么方面?
用户8715145
2021/12/30
2.4K0
【程序源代码】抖音视频去水印工具
“ 关键字:  “抖音视频批量去水印下载 工具 源码"  01 ———— 【总体介绍】 作为一名计算机电脑办公人员和使用者。我们在实现工作中或者日常学习中经常会遇到这个办公场景。经常需要 "抖音视频批量去水印下载",也就是说将抖音视频批量下载中的文字、图片、报表等水印只读的内容转换成屏蔽状态编辑的状态,即将只读转换成可编辑的格式。这个办公场景想想大家都在实际工作和学习中都遇到过。 原来我们做的方式有好多种:1、在网络购买可相关软件,付费花钱卖转换工作 2、或者在网上充各类的会员或者VIP,有的会员按照
程序源代码
2022/09/02
1.6K0
【程序源代码】抖音视频去水印工具
音视频技术开发周刊 | 283
每周一期,纵览音视频技术领域的干货。 新闻投稿:contribute@livevideostack.com。 基于隐扩散模型的高分辨率图像合成 本文提出的隐扩散模型(LDM)在图像修补和类条件图像合成方面具有一定优势,并且在各种任务(包括文本到图像合成、无条件图像生成和超分辨率)上具有高度竞争性的性能,此外与基于像素的扩散模型相比显着降低了计算需求。 ChatGPT之父Sam Altman最新文章:AGI及未来计划 AGI也会带来严重的滥用、严重事故和社会混乱的风险。因此,OpenAI希望可以通过制定一
LiveVideoStack
2023/04/04
8080
音视频技术开发周刊 | 283
【一周要闻】抖音独立电商App“抖音盒子”正式运行;百度上线青春版搜索App“Wonder”;B站发布商业中台系统“品牌银行”
【新热点】 B站发布商业中台系统“品牌银行” TikTok举行首个直播购物活动“On Trend” 中消协“点名”20款APP注销难:涉淘宝腾讯视频等 抖音独立电商App抖音盒子正式运行 【新奇特】 百度新增“Wonder”App:定位年轻群体泛信息服务平台 顺丰同城新增“埋单单”微信小程序试水社交拼单 新热点 12月10日 B站发布商业中台系统“品牌银行” (图片来源于网络) 据悉,B站近期在上海举办的ADTALK 2021营销大会上,副董事长兼COO李旎首次发布了B站商业中台系统“品牌银行”。品牌银
iCDO互联网数据官
2022/03/03
8040
计算机视觉及智能影像行业深度研究报告
计算机视觉是 AI 核心研究领域,目的在于让机器具备人类的“眼力”。计算机视觉是人工智能的 分支之一,目的在于通过电子化的方式来感知和理解影像,让计算机具备和人一样的"眼力",能够 识别、理解周围的世界。人脑接受的 80%的信息来自眼睛(视觉),50%的大脑活动都与处理视觉 信息有关,可见视觉在信息传递中的重要性和复杂性。
小白学视觉
2022/12/27
7820
计算机视觉及智能影像行业深度研究报告
音视频技术开发周刊 | 279
每周一期,纵览音视频技术领域的干货。 新闻投稿:contribute@livevideostack.com。 ---- 基于NeRF的APP上架苹果商店!照片转3D只需一部手机 这个名叫Luma AI的“NeRF APP”,正式上架App Store后爆火。 反 AiArt 运动中两件匪夷所思的蠢事 Reddit 论坛上,拥有两千多万加入者的 ART 版块 reddit.com/r/Art,永久封禁了一名数字艺术家。理由是他违反版规,在该版上发布了一幅疑似 “AI 生成”的作品。这名被封禁的越南插画师 B
LiveVideoStack
2023/02/23
6080
音视频技术开发周刊 | 279
人工智能对视频审核的影响 人工智能的发展前景
现在很多平台都添加了一个人工智能的审核功能,也就是大家在平台发布的内容,首先得通过人工智能的审核机制,否则就无法发布。于是很多人都想尽办法解开平台的审核机制,这样就能避免审核失败,也能快速通过审核。下面跟各位讲讲人工智能对视频审核的影响有什么。
用户8715145
2022/03/18
1.2K0
常青:小程序音视频功能的原理及应用
12月15日,由腾讯云主办的首届“腾讯云+社区开发者大会”在北京举行。本届大会以“新趋势•新技术•新应用”为主题,汇聚了超40位技术专家,共同探索人工智能、大数据、物联网、小程序、运维开发等热门技术的最新发展成果,吸引超过1000名开发者的参与。以下是小程序分会场的演讲内容,稍作整理,分享给大家。
腾讯云开发者社区技术沙龙
2018/12/27
14.9K0
常青:小程序音视频功能的原理及应用
图解抖音推荐算法
在抖音,每天有数量庞大的新作品上传,纯靠机器审核容易被钻空子,纯靠人工审核又不太现实。因此,双重审核成为抖音算法筛选视频内容的第一道门槛。
week
2019/12/20
1.5K0
图解抖音推荐算法
音视频技术开发周刊 | 256
每周一期,纵览音视频技术领域的干货。 新闻投稿:contribute@livevideostack.com。 ---- LiveVideoStackCon 2022 上海站 | 8月5日我们一起聚焦音视频、探秘技术新发展 技术的快速升级正在一步步改变着人们的生活,创造出更多丰富的应用,带来更加前所未有的体验。元宇宙、虚拟人、数字孪生等更多新概念的涌现,催生出哪些新的音视频应用场景和体验,2022年8月5日-8月6日我们在上海海神诺富特大酒店一起探讨吧。 ⏰ 时间:2022年8月5-6日 📌 地点:上海·海
LiveVideoStack
2022/08/26
4840
音视频技术开发周刊 | 256
教你恢复App Store下架的菠菜及金融App产品
导读:最近很多人在我创建的交流群里十个有八个都在问我同一个问题“ios App被自己从应用商店下架后可以再恢復上架吗”“产品被App Store下架后,如何快速上线”大多都是App涉嫌违规,马甲包类型,app侵权等等
jiang chen
2018/08/10
1.9K0
教你恢复App Store下架的菠菜及金融App产品
假装AI,有多少人工智能是靠“人工”的“智能”?
建立一个真正由AI驱动的服务并不简单。所以,一些初创公司动起了歪脑筋——他们让人类模仿机器,而不是让机器学习人类,因为这样成本便宜得多,也容易得多。
科技云报道
2022/04/15
6930
假装AI,有多少人工智能是靠“人工”的“智能”?
音视频技术开发周刊 | 258
每周一期,纵览音视频技术领域的干货。 新闻投稿:contribute@livevideostack.com。 ---- LiveVideoStackCon 2022 北京站讲师招募开始啦! 11月4-5日,LiveVideoStackCon 2022 北京站将与大家继续探索音视频技术在不同场景下的融合与发展,在这里不仅可以与业内大佬们进行技术上的心得交流,还可以感受到多媒体生态内的头部公司、顶级玩家对行业当前发展趋势、瓶颈挑战,与对未来规划的深入解读。LiveVideoStackCon是每个人的舞台,如
LiveVideoStack
2022/08/26
4890
音视频技术开发周刊 | 258
抖音VS快手:两个世界的交战
毫无疑问,抖音和快手是短视频行业的双寡头——前者自称DAU已经突破3亿,后者则计划在2020年春节达到3亿DAU。它们在短视频领域各自拥有不可撼动的基本牌,2018-19年都成功地进军了直播,又都在尝试电商带货乃至自有电商平台。这两个平台在"战略上有高度类似之处,但是用户画像和调性仍然有很大区别——从Slogan就看得出来,抖音是“发现更美好的生活”,快手是“看见每一种生活”。
iCDO互联网数据官
2020/02/19
1.5K0
抖音VS快手:两个世界的交战
2022年互联网直播行业研究报告
自2000年后,随着网络时代到来,普及的电视直播逐渐被互联网直播取代,成为“直播”的代名词。近年来,随着互联网的高速发展与网民规模的持续增加,网络直播产业不断发展,进入更多人的视野,逐渐成为一种新的互联网文化业态。2020年,中国直播行业的市场规模达到1826亿元,较2019年同比增长30.4%,这主要得益于疫情期间宅经济的影响,用户上网时间较多,观看直播的人也越来越多,许多人宅在家里通过网络购物,在电商带货直播的带动下,直播行业有了爆发式增长。
资产信息网
2022/03/25
1.2K0
2022年互联网直播行业研究报告
推荐阅读
相关推荐
人工智能审核视音频有什么好处?智能审核有哪些好的技巧?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档