首页 > 其他分享 >正则表达式2.0

正则表达式2.0

时间:2022-11-23 15:38:52浏览次数:42  
标签:字符 匹配 正则表达式 等价 re 字符串 2.0


正则表达式对象

re.RegexObject

re.compile() 返回 RegexObject 对象。

re.MatchObject

group() 返回被 RE 匹配的字符串。

  • start() 返回匹配开始的位置
  • end() 返回匹配结束的位置
  • span() 返回一个元组包含匹配 (开始,结束) 的位置

正则表达式修饰符 - 可选标志

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:

修饰符

描述

re.I

使匹配对大小写不敏感

re.L

做本地化识别匹配

re.M

多行匹配,影响^和$

re.S

使.匹配包括换行在内的所有字符

re.U

根据Unicode字符集解析字符。

re.X

该标志通过更灵活的格式将正则表达式更易于理解


正则表达式模式

模式字符串使用特殊的语法来表示一个正则表达式:

字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。

多数字母和数字前加一个反斜杠时会拥有不同的含义。

标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。

反斜杠本身需要使用反斜杠转义。

由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'\t',等价于 '\\t')匹配相应的特殊字符。

下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。

模式

描述

^

匹配字符串的开头


正则表达式2.0_反斜杠

$

匹配字符串的末尾。

正则表达式2.0_实例_02

.

匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。

正则表达式2.0_反斜杠_03

[...]

用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'

正则表达式2.0_实例_04

[^...]

不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。

正则表达式2.0_正则表达式_05

re*

匹配0个或多个的表达式。

正则表达式2.0_实例_06

re+

匹配1个或多个的表达式。

正则表达式2.0_实例_07

re?

匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式

正则表达式2.0_字符串_08

re{ n}

精确匹配 n 个前面表达式。例如, o{2} 不能匹配 "Bob" 中的 "o",但是能匹配 "food" 中的两个 o。

正则表达式2.0_反斜杠_09

re{ n,}

匹配 n 个前面表达式。例如, o{2,} 不能匹配"Bob"中的"o",但能匹配 "foooood"中的所有 o。"o{1,}" 等价于 "o+"。"o{0,}" 则等价于 "o*"。

正则表达式2.0_实例_10

re{ n, m}

匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式

正则表达式2.0_反斜杠_11

a| b

匹配a或b

正则表达式2.0_反斜杠_12

(re)

对正则表达式分组并记住匹配的文本

正则表达式2.0_反斜杠_13

(?imx)

正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。

(?-imx)

正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。

(?: re)

类似 (...), 但是不表示一个组

正则表达式2.0_字符串_14

(?imx: re)

在括号中使用i, m, 或 x 可选标志

正则表达式2.0_反斜杠_15

(?-imx: re)

在括号中不使用i, m, 或 x 可选标志

正则表达式2.0_字符串_16

(?#...)

注释.

(?= re)

前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。

正则表达式2.0_反斜杠_17

(?! re)

前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功

正则表达式2.0_反斜杠_18

(?<= re)

正则表达式2.0_字符串_19

另外补充另一种形式(?<!re)的实例:匹配前面不是数字的ab

正则表达式2.0_字符串_20

\w

匹配字母数字及下划线

\W

匹配非字母数字及下划线

\s

匹配任意空白字符,等价于 [ \t\n\r\f]。

\S

匹配任意非空字符

\d

匹配任意数字,等价于 [0-9].

\D

匹配任意非数字

\A

匹配字符串开始

\Z

匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。

\z

匹配字符串结束

\G

匹配最后匹配完成的位置。

\b

匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

\B

匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

\n, \t, 等.

匹配一个换行符。匹配一个制表符。等

\1...\9

匹配第n个分组的内容。

\10

匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。


正则表达式实例

字符匹配

实例

描述

python

匹配 "python".

字符类

实例

描述

[Pp]ython

匹配 "Python" 或 "python"

rub[ye]

匹配 "ruby" 或 "rube"

正则表达式2.0_反斜杠_21

[aeiou]

匹配中括号内的任意一个字母

[0-9]

匹配任何数字。类似于 [0123456789]

[a-z]

匹配任何小写字母

[A-Z]

匹配任何大写字母

[a-zA-Z0-9]

匹配任何字母及数字

[^aeiou]

除了aeiou字母以外的所有字符

[^0-9]

匹配除了数字外的字符

特殊字符类【需要对比记忆,大小写所表示的含义是相反的】

实例

描述

.

匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。

正则表达式2.0_正则表达式_22

\d

匹配一个数字字符。等价于 [0-9]。

正则表达式2.0_反斜杠_23

\D

匹配一个非数字字符。等价于 [^0-9]。

正则表达式2.0_反斜杠_24

\s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

正则表达式2.0_正则表达式_25

\S

匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

正则表达式2.0_正则表达式_26

\w

匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。

正则表达式2.0_正则表达式_27

\W

匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。

正则表达式2.0_反斜杠_28

标签:字符,匹配,正则表达式,等价,re,字符串,2.0
From: https://blog.51cto.com/u_15888443/5881362

相关文章

  • 希腊神话2.0
    神王宙斯-创世故事乌拉诺斯(英语:Uranus)盖亚(英语:Gaia(Gaea))    刚开始的时候,天地一片混沌(chaos),然后产生了大地之母盖亚。盖亚一个人生下了天空之神乌拉诺斯(男),乌拉诺......
  • 正则表达式
    正则表达式-在Java中,我们经常需要验证一些字符串,例如:年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字符串的规......
  • 正则表达式
    1、?前面的字符可有可无xxp?xxxxp2、*前面的字符可出现0~N次xx*pxpxxpxxxp3、+前面的字符可出现1~N次xx+pxxpxxxp4、{}前面的字符可出现......
  • 云原生技术中台 CNStack2.0 正式发布
    作者:奥陌11月5日,在2022杭州·云栖大会上,云原生技术中台CNStack2.0 正式发布。阿里巴巴资深技术专家谢吉宝介绍CNStack2.0企业在数字化转型的过程中,一部分问题得......
  • 云原生技术中台 CNStack2.0 正式发布
    作者:奥陌11月5日,在2022杭州·云栖大会上,云原生技术中台CNStack2.0 正式发布。阿里巴巴资深技术专家谢吉宝介绍CNStack2.0企业在数字化转型的过程中,一部分问......
  • JS正则表达式、while循环
    <!-- while循环 while循环会在指定条件为真时循环执行代码块。 语法: while(条件) { 需要执行的代码 } do/while循环是while循环的变体。该循环......
  • forsage佛萨奇智能合约2.0源码解析
    本文由威-kaifa873整理发布,仅作为项目开发需求参考!飞机@sleu88TherearefivereasonsforjoiningFosaki:ItisacompletelyfairEthereumsmartcontract.Thefund......
  • 森林野火故事2.0:一眼看穿!使用 Panel 和 hvPlot 可视化 ⛵
    ......
  • docker-ce在ubuntu:22.04进行apt update时报错E: Problem executing scripts APT::Upd
    使用docker-ce,pull一个ubuntu:22.04镜像,run后进行aptupdate更新一会,就报错:Readingpackagelists...DoneE:ProblemexecutingscriptsAPT::Update::Post-Invoke......
  • 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
    1、需要在服务器安装AccessDatabaseEngine_2010_X64.exe驱动程序2、虽然金蝶安装程序目录是32位的,但是IIS的w3wp进程是64位,所以安装64位的AccessDatabaseEngine才有用3......