Python中正则表达式的巧妙用法是怎么样的

技术Python中正则表达式的巧妙用法是怎么样的Python中正则表达式的巧妙用法是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 前言正则表达

Python中正则表达式的巧妙用法是什么?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的小伙伴找到更简单易行的方法。

前言

正则表达式就是从字符串中寻找规则,通过“抽象”符号来表达。例如,对于2,5,10,17,26,37这样的数字序列,如何计算第七个值,首先要找到序列的规则,然后用表达式n2 1来描述它的规则,然后得到第七个值为50。对于需要匹配的字符串,规则的发现也是* * *的一步。本文主要利用正则表达式完成字符串的查询匹配、替换匹配和分段匹配。

Python中正则表达式的巧妙用法是怎么样的

常用的正则符号

在输入字符串匹配之前,让我们了解一下常用的常规符号,如下表所示:

Python中正则表达式的巧妙用法是怎么样的

如果读者能熟练掌握上表的内容,我相信他们就能轻松处理字符串。如前所述,本节将基于正则表达式查询、替换和分段字符串。所有这些操作都需要导入到re模块中,并使用下面描述的几个功能。

字符串的匹配查询

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

findall(模式、字符串、标志=0)

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

String:指定要处理的字符串。

标志:指定匹配模式。公共值可以是re。我,re。m,re。s和re.x. The的模式。我是让正则表达式不区分大小写;re的模式。m是让正则表达式多行匹配。re的模式。s表示常规符号。它可以匹配任何字符,包括换行符。Re。x模式允许更详细地编写正则表达式,例如多行表示、忽略空白字符、添加注释等。

字符串的匹配替换

re模块中子函数的作用是替换,类似于string的replace方法。该函数根据正则表达式用repl替换匹配的内容。该函数的参数具有以下含义:

sub(模式,repl,字符串,计数=0,标志=0)

模式:与findall函数中的模式相同。

Repl:指定要替换的新值。

String:与findall函数中的字符串相同。

计数:用于指定最大替换次数。默认值是所有替换。

标志:与findall函数中的标志相同。

字符串的匹配分割

re模块中的split函数是一个split方法,它根据指定的正则表达式分离字符串,类似于字符串。该功能的具体参数具有以下含义:

拆分(模式,字符串,maxsplit=0,标志=0)

模式:与findall函数中的模式相同。

Maxsplit:用于指定* * *拆分的数量,默认值为全部拆分。

String:与findall函数中的字符串相同。

标志:与findall函数中的标志相同。

实战案例

如果已经掌握了以上函数和参数的含义,需要通过案例进一步加强理解。接下来,我们将举例说明上述三个功能:

#导入正则表达式import re的re模块#检索string8=' {ymd:' 2018-01-01 '、tianqi3360 ' sunny '、aqiInfo: '轻度污染' }、{ymd:' 2018-01-02 '中的所有天气条件。AqiInfo: '优' },{YMD :' 2018-01-03 ',天齐: '小雨到中雨',aqiInfo: '优' },{YMD :' 2018-01-04 ',天齐。)'',string8))#取出string9中所有带o字母的单词st。

ring9 = '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中正则表达式的巧妙用法是怎么样的问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50248.html

(0)

相关推荐

  • 狗能吃猫粮么,狗常吃猫粮会怎样

    技术狗能吃猫粮么,狗常吃猫粮会怎样狗常吃猫粮是有害处的,长期饲喂猫粮,狗狗会因为无法消化高量的蛋白质而出现胃肠敏感,甚至出现呕吐、腹泻等症状狗能吃猫粮么。随特别是对肝肾功能本来就有问题的狗狗来说,过多的蛋白质更是禁忌。

    生活 2021年10月26日
  • 信息安全的基本属性有哪些

    技术信息安全的基本属性有哪些这篇文章主要讲解了“信息安全的基本属性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“信息安全的基本属性有哪些”吧!

    攻略 2021年11月9日
  • python内置函数中的均值函数在哪(python中计算数量的函数)

    技术Python矩与矩生成函数是什么本篇内容主要讲解“Python矩与矩生成函数是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python矩与矩生成函数是什么”吧!斜度

    攻略 2021年12月21日
  • 宫寒不孕症状,不孕的原因就只是“宫寒”吗

    技术宫寒不孕症状,不孕的原因就只是“宫寒”吗日常生活中我们经常会听到有人说怀不上孩子是因为“宫寒”宫寒不孕症状,这其实是一个误区。不孕是有多种原因导致的生育状态障碍,男女双方因素都有,在这里我们主要谈论女性因素导致的不孕

    生活 2021年10月27日
  • 怎么构建nftables

    技术怎么构建nftables这篇文章将为大家详细讲解有关怎么构建nftables,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当前,有一个与 nftables 兼容的 iptables

    攻略 2021年10月26日
  • java判断素数为什么要假设(java中求一个数的各个完数因子)

    技术Java概率论的计数方法是什么本篇内容主要讲解“Java概率论的计数方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java概率论的计数方法是什么”吧!概率概率论

    攻略 2021年12月21日