返回顶部
首页 > 资讯 > 后端开发 > Python >Python中正则表达式的巧妙用法是怎么样的
  • 484
分享到

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

2023-06-16 21:06:44 484人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

python中正则表达式的巧妙用法是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 前言正则表达式就是从字符串中发现规律,并通过“抽象”的符号表达出来。打

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

 前言

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

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

常用的正则符号

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

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

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

字符串的匹配查询

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中正则表达式的巧妙用法是怎么样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网Python频道了解更多相关知识。

--结束END--

本文标题: Python中正则表达式的巧妙用法是怎么样的

本文链接: https://lsjlt.com/news/285342.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中正则表达式的巧妙用法是怎么样的
    Python中正则表达式的巧妙用法是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 前言正则表达式就是从字符串中发现规律,并通过“抽象”的符号表达出来。打...
    99+
    2023-06-16
  • 在python正则表达式中是怎样正确使用正则表达式
    这篇文章将为大家详细讲解有关在python正则表达式中是怎样正确使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在我们已经看了一些简单的正则表达式,那么我们实际在 Python...
    99+
    2023-06-17
  • 正则表达式用法是怎么样的
    本篇文章给大家分享的是有关正则表达式用法是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。正则表达式之基本概念在我们写页面时,往往需要对表单的数据比如账号、身份证号等进行...
    99+
    2023-06-22
  • JavaScript中正则表达式是怎样的
    JavaScript中正则表达式是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  好程序员web前端培训分享JavaScript学习笔...
    99+
    2024-04-02
  • Flex正则表达式语法是怎么样的
    这篇文章将为大家详细讲解有关Flex正则表达式语法是怎么样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Flex正则表达式1.基本语法.匹配除换行符"\n"外的任意单个字符。*匹配前...
    99+
    2023-06-17
  • Python中正则表达式的用法
    在这里跟大家分享一个Python编程过程中的小知识点——正则表达式! 那正则表达式到底是什么呢?又是用来干什么的呢? 正则表达式 是包含文本和特殊字符的字符串, 为高级的文本模式匹配, 抽取, 与文本形式的搜索和替换功能提供了基础...
    99+
    2023-01-31
    正则表达式 Python
  • Python中的正则表达式怎么用
    这篇文章主要为大家展示了“Python中的正则表达式怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中的正则表达式怎么用”这篇文章吧。1.正则表达式是什么很简单就是一种字符串匹配...
    99+
    2023-06-25
  • python正则表达式的用法
    本篇内容介绍了“python正则表达式的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单模式 我们...
    99+
    2024-04-02
  • Python中怎么使用正则表达式及正则表达式匹配规则是什么
    1 导库import re2 使用模板re_pattern = re.compile(pattern, flags=0) result = re.findall(re_pattern,string)3 说明参数描述pattern匹配的正则表...
    99+
    2023-05-14
    Python
  • python的正则表达式怎么用
    这篇文章主要为大家展示了“python的正则表达式怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python的正则表达式怎么用”这篇文章吧。一、正则表达式–元字符re 模块使 Python...
    99+
    2023-06-25
  • python中的正则表达式怎么使用
    这篇文章主要讲解了“python中的正则表达式怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中的正则表达式怎么使用”吧!在Python中需要通过正则表达式对字符串进行匹配...
    99+
    2023-07-04
  • Python中的正则表达式
    正则表达式 是包含文本和特殊字符的字符串, 为高级的文本模式匹配, 抽取, 与文本形式的搜索和替换功能提供了基础 Python通过标准库re模块来支持正则表达式 模式匹配的两种方法完成匹配(模式匹配) 搜索(search())...
    99+
    2023-01-31
    正则表达式 Python
  • SQL正则表达式及mybatis中使用正则表达式的方法
    小编给大家分享一下SQL正则表达式及mybatis中使用正则表达式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql...
    99+
    2024-04-02
  • Python正则表达式的使用方法是什么
    这篇文章主要讲解了“Python正则表达式的使用方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python正则表达式的使用方法是什么”吧!什么是正则表达式简而言之,正则表达式(re...
    99+
    2023-06-16
  • PHP中的正则表达式使用技巧
    在PHP编程中,正则表达式(Regular Expression)是不可避免的一部分,它是一种用来匹配特定模式的强大工具。在使用正则表达式时,需要注意一些细节和技巧,下面就来介绍一些PHP中的正则表达式使用技巧。一、正则表达式的基础知识正则...
    99+
    2023-05-23
    使用技巧 PHP正则 表达式技巧
  • python 中正则表达式的使用
    正则表达式(re)(Regular Expression)。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。在pyth...
    99+
    2023-01-31
    正则表达式 python
  • 正则表达式grep的用法是什么
    grep命令是一个在Linux和Unix系统中常用的命令,用于在文件或标准输入中查找符合给定模式的内容,并将其输出到标准输出。 gr...
    99+
    2024-03-08
    正则表达式
  • Python 正则表达式的高级用法
    对于Python来说,学习正则就要学习模块re的使用方法。本文将展示一些大家都应该掌握的高级技巧。 编译正则对象 re.compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有...
    99+
    2022-06-04
    高级 正则表达式 Python
  • Python正则表达式的基本用法
    本篇内容介绍了“Python正则表达式的基本用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正则表达式中特殊的符号:“.” 表任意字符“^...
    99+
    2023-06-17
  • python正则表达式re.group()用法
    目录re.group()用法re.group()用法 在正则表达式中,re.group()方法是用来提取出分组截获的字符串,匹配模式里的括号用于分组。 举例说明: #!/usr/bi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作