Python正则表达式

您所在的位置:网站首页 pyrhon正则表达式 Python正则表达式

Python正则表达式

2024-07-18 04:13:30| 来源: 网络整理| 查看: 265

正则表达式是一个特殊的字符序列,可以帮助您使用模式中保留的专门语法来匹配或查找其他字符串或字符串集。 正则表达式在UNIX世界中被广泛使用。

注:很多开发人员觉得正则表达式比较难以理解,主要原因是缺少使用或不愿意在这上面花时间。

re模块在Python中提供对Perl类正则表达式的完全支持。如果在编译或使用正则表达式时发生错误,则re模块会引发异常re.error。

在这篇文章中,将介绍两个重要的功能,用来处理正则表达式。 然而,首先是一件小事:有各种各样的字符,这些字符在正则表达式中使用时会有特殊的意义。 为了在处理正则表达式时避免混淆,我们将使用:r'expression'原始字符串。

匹配单个字符的基本模式

编号 表达式 描述 1 a, X, 9, matchObj.group() : dogs 4.搜索和替换

使用正则表达式re模块中的最重要的之一是sub。

模块

re.sub(pattern, repl, string, max=0)

此方法使用repl替换所有出现在RE模式的字符串,替换所有出现,除非提供max。此方法返回修改的字符串。

示例

#!/usr/bin/python3 import re phone = "2018-959-559 # This is Phone Number" # Delete Python-style comments num = re.sub(r'#.*$', "", phone) print ("Phone Num : ", num) # Remove anything other than digits num = re.sub(r'\D', "", phone) print ("Phone Num : ", num)

当执行上述代码时,会产生以下结果 -

Phone Num : 2018-959-559 Phone Num : 2018959559 5.正则表达式修饰符:选项标志

正则表达式文字可能包含一个可选修饰符,用于控制匹配的各个方面。 修饰符被指定为可选标志。可以使用异或(|)提供多个修饰符,如前所示,可以由以下之一表示 -

编号 修辞符 描述 1 re.I 执行不区分大小写的匹配。 2 re.L 根据当前语言环境解释单词。这种解释影响字母组(\w和\W)以及字边界行为(\b和\B)。 3 re.M 使$匹配一行的结尾(而不仅仅是字符串的结尾),并使^匹配任何行的开始(而不仅仅是字符串的开头)。 4 re.S 使一个句点(.)匹配任何字符,包括换行符。 5 re.U 根据Unicode字符集解释字母。 此标志影响\w,\W,\b,\B的行为。 6 re.X 允许“cuter”正则表达式语法。 它忽略空格(除了一个集合[]内部,或者用反斜杠转义),并将未转义的#作为注释标记。 6.正则表达模式

除了控制字符(+ ? . * ^ $ ( ) [ ] { } | \),所有字符都与其自身匹配。 可以通过使用反斜杠将其转换为控制字符。

7.正则表达式示例

字符常量

编号 示例 说明 1 python 匹配“python”。

字符类

编号 示例 说明 1 [Pp]ython 匹配“Python”或“python” 2 rub[ye] 匹配“ruby”或“rube” 3 [aeiou] 匹配任何一个小写元音 4 [0-9] 匹配任何数字; 如[0123456789] 5 [a-z] 匹配任何小写ASCII字母 6 [A-Z] 匹配任何大写的ASCII字母 7 [a-zA-Z0-9] 匹配上述任何一个 8 [^aeiou] 匹配除小写元音之外的任何东西 9 [^0-9] 匹配数字以外的任何东西

特殊字符类

编号 示例 说明 1 . 匹配除换行符以外的任何字符 2 \d 匹配数字:[0-9] 3 \D 匹配非数字:[^0-9] 4 \s 匹配空格字符:[\t\r\n\f] 5 \S 匹配非空格:[^\t\r\n\f] 6 \w 匹配单字字符: [A-Za-z0-9_] 7 \W 匹配非单字字符: [A-Za-z0-9_]

重复匹配

编号 示例 说明 1 ruby? 匹配“rub”或“ruby”:y是可选的 2 ruby* 匹配“rub”加上0个以上的y 3 ruby+ 匹配“rub”加上1个或更多的y 4 \d{3} 完全匹配3位数 5 \d{3,} 匹配3位或更多位数字 6 \d{3,5} 匹配3,4或5位数

非贪婪重复

这匹配最小的重复次数 -

编号 示例 说明 1 贪婪重复:匹配“ perl>” 2 非贪婪重复:在“ perl”中匹配“”

用圆括号分组

编号 示例 说明 1 \D\d+ 没有分组:+重复\d 2 (\D\d)+ 分组:+重复\D\d对 3 ([Pp]ython(,)?)+ 匹配“Python”,“Python,python,python”等

反向引用

这与以前匹配的组再次匹配 -

编号 示例 说明 1 ([Pp])ython&\1ails 匹配python和pails或Python和Pails 2 (['"])[^\1]*\1 单引号或双引号字符串。\1匹配第一个分组匹配。 \2匹配任何第二个分组匹配等

备择方案

python|perl - 匹配“python”或“perl”rub(y|le) - 匹配 “ruby” 或 “ruble”Python(!+|\?) - “Python”后跟一个或多个! 还是一个?

锚点

这需要指定匹配位置。

编号 示例 说明 1 ^Python 在字符串或内部行的开头匹配“Python” 2 Python$ 在字符串或内部行的结尾匹配“Python” 3 \APython 在字符串的开头匹配“Python” 4 Python\Z 在字符串的末尾匹配“Python” 5 \bPython\b 在字词的边界匹配“Python” 6 \brub\B \B是非字词边界:在“rube”和“ruby”中匹配“rub”,而不是单独匹配 7 Python(?=!) 匹配“Python”,如果跟着感叹号。 8 Python(?!!) 匹配“Python”,如果没有感叹号后面。

带括号的特殊语法

编号 示例 说明 1 R(?#comment) 匹配“R”。其余的都是注释 2 R(?i)uby 匹配“uby”时不区分大小写 3 R(?i:uby) 同上 4 `rub(?:y le))` 仅组合而不创建\1反向引用

上一篇: Python面向对象(类和对象) 下一篇: Python+MySQL数据库操作(PyMySQL)


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭