正则表达式速查表 - Python 指南

正则表达式(Regex)是我们在 Python 中用于搜索、匹配、验证和替换文本的模式。这份速查表将为大家提供常用正则表达式模式和符号的快速参考。

基本字符

表达式

说明

^

匹配字符串的开头(或在 MULTILINE 模式下的行首)。

$

匹配字符串的结尾(或在 MULTILINE 模式下的行尾)。

.

匹配除换行符以外的任意字符。

a

匹配字符 a。

xy

匹配字符串 xy。

a\

b

匹配表达式 a 或 b。如果 a 首先匹配,则不再尝试 b。

Python


CODEBLOCK_10b03047

Output



Explanation:

  • ^x 匹配字符串开头的 x
  • s$ 匹配字符串结尾的 s

量词

量词定义了一个模式应该出现的次数。

表达式

说明

+

匹配前面的表达式 1 次或多次。

*

匹配 0 次或多次。

?

匹配 0 次或 1 次。

{p}

匹配其左侧的表达式恰好 p 次,不能少。

{p, q}

匹配其左侧的表达式 p 到 q 次。

{p, }

匹配其左侧的表达式 p 次或更多。

{0, q}

匹配其左侧的表达式最多 q 次。Python

CODEBLOCK_bef320aa

Output



Explanation:

  • 9+ 匹配连续的 9 -> 99
  • \d{3} 恰好匹配三个数字 -> 123

字符类

字符类定义了一组字符,用于匹配字符串中来自该集合的任意单个字符。

表达式

说明

\w

匹配字母数字字符,即 a-z、A-Z、0-9 和下划线()。

\W

匹配非字母数字字符,即除了 a-z、A-Z、0-9 和 之外的字符。

\d

匹配数字,从 0-9。

\D

匹配任意非数字字符。

\s

匹配空白字符,这也包括 \t、

、\r 和空格字符。 |

\S

匹配非空白字符。

\A

匹配字符串绝对开头的右侧表达式,无论是单行还是多行模式。

\Z

匹配字符串绝对结尾的左侧表达式,无论是单行还是多行模式。|

匹配换行符。 \t

匹配制表符。

\b

匹配单词开头或结尾的单词边界(或空字符串)。

\B

匹配 \b 不匹配的位置,即非单词边界。Python

CODEBLOCK_7ad54bc5

Output



Explanation:

  • \s 匹配第一个空格
  • \D+\d* 匹配非数字字符后跟数字 -> geeks123

集合

集合用于匹配一组中的一个字符。

表达式

说明

[abc]

匹配 a、b 或 c 中的任意一个。它不匹配 abc。

[a-z]

匹配从 a 到 z 的任意字母。

[A-Z]

匹配从 A 到 Z 的任意大写字母。

[a\-p]

匹配 a、- 或 p。它匹配 – 是因为 \ 转义了它。

[-z]

匹配 – 或 z。

[a-z0-9]

匹配从 a 到 z 或从 0 到 9 的字符。

[(+)]

特殊字符在集合内变为字面量,所以这匹配 (、+、 或 )。

[^ab5]

添加 ^ 会排除集合中的任何字符。这里,它匹配不是 a、b 或 5 的字符。

\[a\]

匹配 [a],因为两个方括号 [ ] 都被转义了。Python

CODEBLOCK_fbc138d7

Output



Explanation:

  • [^abc] 匹配 d
  • [a-p] 匹配 e

分组

分组允许我们捕获匹配的一部分。

表达式

说明

( )

匹配括号内的表达式并将其分组,我们可以根据需要捕获它。

(?#…)

读取注释。

(?Ppattern)

匹配表达式 AB,可以使用组名进行检索。

(?:A)

匹配由 A 表示的表达式,但之后无法检索它。

(?P=group)

匹配由名为“group”的较早组匹配的表达式。Python

CODEBLOCK_e7389181

Output


()
(‘geeks‘, ‘best‘)

Explanation:

  • re.search(r"(?:AB)", "ACABC"): 使用非捕获组查找 AB,因此没有存储任何内容。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43601.html
点赞
0.00 平均评分 (0% 分数) - 0