Python中正则表达式的巧妙使用一文包你必掌握正则_正则表达式

来源:脚本之家  责任编辑:小易  

用拟人手法来咏梅,达到的效果是,作者把梅花赋予了人的情感,把梅写活了www.zgxue.com防采集请勿采集本网。

前言

正则表达式就是从字符串中发现规律,并通过“抽象”的符号表达出来。打个比方,对于2,5,10,17,26,37这样的数字序列,如何计算第7个值,肯定要先找该序列的规律,然后用n2+1这个表达式来描述其规律,进而得到第7个值为50。对于需要匹配的字符串来说,同样把发现规律作为第一步,本文主要使用正则表达式完成字符串的查询匹配、替换匹配和分割匹配。

习惯于中庸之道的中国人,在拒绝别人时很容易发生一些心理障碍,这是传统观念的影响,同时,也与当今社会某些从众心理有关。不敢和不善于拒绝别人的人,实际往往得戴着“假面具”生活,活得很累

常用的正则符号

卡农是采用对位法则写就的曲子,由一个旋律起,循环往复,在不知不觉种音乐在同样的旋律种升了一个八度,然后又巧妙的回复。每个人听卡农,都能听出许多不同的感受。因为卡农里承载的东西太多。

在进入字符串的匹配之前,先来了解一下都有哪些常用的正则符号,见下表所示:

充分表达了青年男女健康、真挚的思想感情,以及他们对正当、自由的爱情生活的大胆追求。这首诗通过一个男子在河边遇到一个采摘荇菜的姑娘,并为姑娘的勤劳、美貌和娴静而动心,随之引起了强烈的爱慕之情,

如果读者能够比较熟练地掌握上表中的内容,相信在字符串处理过程中将会游刃有余。如前文所说,本节将基于正则表达式完成字符串的查询、替换和分割操作,这些操作都需要导入re模块,并使用如下介绍的几个函数。

呵,要求真高呀,能达到目的就好了。给你个精简巧妙的吧。因为我相信->这个字符不会出现在字幕里,所以取巧了。这是正则 \\d+:.*?\\d+ 匹配整段 00:22:23,830->00:22:26,020

字符串的匹配查询

《国风·邶风·式zd微》是一首先秦时代的诗歌。采用反问、隐语、互文等多种修辞方式, 使诗篇显得宛转而有情致,同时也引人注意,启人以思,专所谓不言怨而怨自深矣。正是因为这些修辞手法的巧妙

re模块中的findall函数可以对指定的字符串进行遍历匹配,获取字符串中所有匹配的子串,并返回一个列表结果。该函数的参数含义如下:

findall(pattern, string, flags=0)

pattern:指定需要匹配的正则表达式。

string:指定待处理的字符串。

flags:指定匹配模式,常用的值可以是re.I、re.M、re.S和re.X。re.I的模式是让正则表达式对大小写不敏感;re.M的模式是让正则表达式可以多行匹配;re.S的模式指明正则符号.可以匹配任意字符,包括换行符 ;re.X模式允许正则表达式可以写得更加详细,如多行表示、忽略空白字符、加入注释等。

字符串的匹配替换

re模块中的sub函数的功能是替换,类似于字符串的replace方法,该函数根据正则表达式把满足匹配的内容替换为repl。该函数的参数含义如下:

sub(pattern, repl, string, count=0, flags=0)

pattern:同findall函数中的pattern。

repl:指定替换成的新值。

string:同findall函数中的string。

count:用于指定最多替换的次数,默认为全部替换。

flags:同findall函数中的flags。

字符串的匹配分割

re模块中的split函数是将字符串按照指定的正则表达式分隔开,类似于字符串的split方法。该函数的具体参数含义如下:

split(pattern, string, maxsplit=0, flags=0)

pattern:同findall函数中的pattern。

maxsplit:用于指定最大分割次数,默认为全部分割。

string:同findall函数中的string。

flags:同findall函数中的flags。

实战案例

如果上面的函数和参数含义都已经掌握了,还需要进一步通过案例加强理解,接下来举例说明上面的三个函数:

# 导入用于正则表达式的re模块 import re # 取出字符串string8中所有的天气状态 string8 = "{ymd:'2018-01-01',tianqi:'晴',aqiInfo:'轻度污染'},{ymd:'2018-01-02',tianqi:'阴~小雨',aqiInfo:'优'},{ymd:'2018-01-03',tianqi:'小雨~中雨',aqiInfo:'优'},{ymd:'2018-01-04',tianqi:'中雨~小雨',aqiInfo:'优'}" # 基于正则表达式使用findall函数 print(re.findall("tianqi:'(.*?)'", string8)) # 取出string9中所有含O字母的单词 string9 = 'Together, we discovered that a free market only thrives when there are rules to ensure competition and fair play, Our celebration of initiative and enterprise' # 基于正则表达式使用findall函数 print(re.findall('w*ow*',string9, flags = re.I)) # 将string10中的标点符号、数字和字母删除 string10 = '据悉,这次发运的4台蒸汽冷凝罐属于国际热核聚变实验堆(ITER)项目的核二级压力设备,先后完成了压力试验、真空试验、氦气检漏试验、千斤顶试验、吊耳载荷试验、叠装试验等验收试验。' # 基于正则表达式使用sub函数 print(re.sub('[,。、a-zA-Z0-9()]','',string10)) # 将string11中的每个子部分内容分割开 string11 = '2室2厅 | 101.62平 | 低区/7层 | 朝南 上海未来 - 浦东 - 金杨 - 2005年建' # 基于正则表达式使用split函数 split = re.split('[-| ]', string11) print(split) # 分割结果的清洗 split_strip = [i.strip() for i in split] print(split_strip) out: ['晴', '阴~小雨', '小雨~中雨', '中雨~小雨'] ['Together', 'discovered', 'only', 'to', 'competition', 'Our', 'celebration', 'of'] 据悉这次发运的台蒸汽冷凝罐属于国际热核聚变实验堆项目的核二级压力设备先后完成了压力试验真空试验氦气检漏试验千斤顶试验吊耳载荷试验叠装试验等验收试验 ['2室2厅 ', ' 101.62平 ', ' 低区/7层 ', ' 朝南 ', ' 上海未来 ', ' 浦东 ', ' 金杨 ', ' 2005年建'] ['2室2厅', '101.62平', '低区/7层', '朝南', '上海未来', '浦东', '金杨', '2005年建']

如上结果所示,在第一个例子中通过正则表达式"tianqi:'(.*?)'"实现目标数据的获取,如果不使用括号的话,就会产生类似"tianqi:'晴'", "tianqi:'阴~小雨'"这样的值,所以,加上括号就是为了分组,且仅返回组中的内容;

第二个例子并没有将正则表达式写入圆括号,如果写上圆括号也是返回一样的结果,所以findall就是用来返回满足匹配条件的列表值,如果有括号,就仅返回括号内的匹配值;

第三个例子使用替换的方法,将所有的标点符号换为空字符,进而实现删除的效果;

第四个例子是对字符串的分割,如果直接按照正则 '[,。、a-zA-Z0-9()]' 分割的话,返回的结果中包含空字符,如 '2室2厅' 后面就有一个空字符。为了删除列表中每个元素的首尾空字符,使用了列表表达式,并且结合字符串的strip方法完成空字符的压缩。

总结

以上所述是小编给大家介绍的Python中正则表达式的巧妙使用一文包你必掌握正则,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

喜你成疾,药石无医。――《玫瑰与鹿》任凭弱水三千,我只取一瓢饮。――《红楼梦》问世间情为何物,直教人生死相许。百――《摸鱼儿?雁丘词》归,吾娉女。――《春秋左氏传》有一美人兮,见之不忘。一日不见,思之如狂。――《凤求凰》山有度木兮木有枝,心悦君兮君不知。――知《越人歌》这个妹妹我曾见过的。――《红楼梦》两情若是长久时,又岂在朝朝暮暮。――《鹊桥仙?纤云弄巧》在天愿作道比翼鸟,在地愿为连理枝。――《长恨歌》春蚕到死丝方尽,蜡炬成灰泪始干。――《无题》我住长江头,君住长江尾。日日思君不见君,共饮长江水。此内水几时休,此恨何时已,只愿君心似我心,定不负相思意。――《卜算子》愿得一人心,白首不分离。――《白头吟》青青子衿,悠悠我心。――《诗经》生死契阔,与子成说,执子之手,与子偕老。――《诗经》山无陵,江水为竭,冬雷震震,夏雨雪,天容地合,乃敢与君绝!――《上邪》内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • python使用正则表达式获取网页中所需要的信息
  • python正则表达式及使用正则表达式的例子
  • python使用正则表达式替换匹配成功的组并输出替换的次数
  • python使用正则表达式替换匹配成功的组
  • python使用正则表达式的search()函数实现指定位置搜索功能
  • 正则表达式详细介绍(下)
  • 浅谈正则表达式中的分组和引用实现方法
  • 正则表达式在ubb论坛中的应用
  • javascript使用正则验证身份证号(简单)
  • javascript中常用的正则表达式日常整理(全)
  • 超全的js正则表达式整理笔记
  • 如何快速学习正则表达式
  • 正则表达式i修饰符(大小写不敏感)
  • 浅谈linux grep与正则表达式
  • javascript正则表达式校验非零的负整数实例
  • 如何委婉地表达“我爱你?
  • 作者巧妙的运用拟人的修辞手法来写咏梅,你认为这样写有什么表达效果?请举例说明。最短的解释。
  • 人间失格到底表达的什么?
  • 写出一次函数和正比例函数的表达式,并指出它们的区别和联系
  • 如何别人邀请我,但是我实在是不想去,但不好直白说不想去,怎么委婉表达?
  • 曲子《卡农》表达了什么意思?
  • 《关雎》的主要内容是什么?表达了主人公怎样的感情
  • 00:22:23,830 --> 00:22:26,020 的java正则表达式,谢谢!
  • 式微这首诗运用了什么样的修辞手法具有怎样的表达效果?
  • 如何巧妙的反驳别人的无理?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页正则表达式python使用正则表达式获取网页中所需要的信息python正则表达式及使用正则表达式的例子python使用正则表达式替换匹配成功的组并输出替换的次数python使用正则表达式替换匹配成功的组python使用正则表达式的search()函数实现指定位置搜索功能正则表达式详细介绍(下)浅谈正则表达式中的分组和引用实现方法正则表达式在ubb论坛中的应用javascript使用正则验证身份证号(简单)javascript中常用的正则表达式日常整理(全)超全的js正则表达式整理笔记如何快速学习正则表达式正则表达式i修饰符(大小写不敏感)浅谈linux grep与正则表达式javascript正则表达式校验非零的负整数实例java 正则表达式详解比较正宗的验证邮箱的正则表达式正则表达式匹配任意字符(包括换最新手机号码、电话号码正则表达javascript 手机号码正则表达式验js利用正则配合replace替换指定字正则表达式匹配不包含某些字符串正则中需要转义的特殊字符小结js正则函数match、exec、test、s最全的常用正则表达式大全——包正则表达式(regex)入门、元字符(特殊字符python3爬虫之入门基础和正则表达式jscript 和 vbscript 正则表达式js基础教程——正则表达式示例(推荐)自动识别html的标记 替换连接详解linux中正则表达式的应用前端正则表达式书写及常用的方法正则表达式的应用正则表达式\d元字符(相对于数字0-9)js 正则表达式之test函数讲解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved