4312

22 分钟

#正则表达式的说明

正则表达式(Regular Expression) 是一种用于匹配和处理文本的强大工具,它使用特定语法构成的字符串来定义搜索模式。

例如表单校验中检查输入的邮箱地址是否正确,逐个字符进行校验十分繁琐,可以使用正则表达式 ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$ 进行校验。

import re # 验证电子邮件格式 email_pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$' # 正则表达式 if re.match(email_pattern, "user@example.com"): print("有效邮箱")

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#元字符

元字符含义示例
.匹配任意一个字符(除换行符)a.c -> abc, a1c
^匹配字符串开头^abc -> abcxxxx
$匹配字符串结尾abc$ -> xxxxabc
*匹配前一个字符出现 0次或多次a* -> "", a, aa
+匹配前一个字符出现 1次或多次a+ -> a, aa
?匹配前一个字符 0次或1次a? -> "", a
{n}匹配前一个字符 n 次a{2} -> aa
{min, }匹配前一个字符 至少 min 次a{2,} -> aa, aaa, aaaa
{min, max}匹配前一个字符 min 次至 max 次a{2,3} -> aa, aaa
[]匹配括号内的任意一个字符[abc] -> a, b, c
[^]匹配不在括号内的任意一个字符[^abc] -> d, e, f
[-]表示范围[a-z] -> a, b, y, z
()分组(abc)+ -> abc, abcabc
|abc|xyz -> abc, xyz
\d匹配任意数字,等价于 [0-9]\d -> 1, 2, 3
\D匹配任意非数字,等价于 [^0-9]\D -> a, b, _, @
\w匹配任意字母、数字、下划线,等价于 [a-zA-Z0-9_]\w -> a, 1, _
\W匹配任意非字母、数字、下划线,等价于 [^a-zA-Z0-9_]\W -> @, #
\s匹配任意空白字符(空格,\n, \r, \t 等)\s ->
\S匹配任意非空白字符\S -> a, 1 ,@
\b匹配单词边界\bcat\b -> This is a cat 中的 cat
\B匹配非单词边界\Bcat\B -> scatter 中的 cat
\r回车符
\n换行符
\f换页符
\t制表符
\v垂直制表符
\转义字符,使后面的特殊字符表示字符本身而非特殊含义\+ -> +

#贪婪模式与懒惰模式

在默认情况下,使用贪婪模式,即可以匹配不同长度时匹配最长的长度。如果追加额外的 ? 则使用懒惰模式,即可以匹配不同长度时匹配最短的长度。

贪婪模式说明懒惰模式说明
.*零次或多次,取最长匹配.*?零次或多次,取最短匹配
.+一次或多次,取最长匹配.+?一次或多次,取最短匹配
.?零次或一次,取最长匹配.??零次或一次,取最短匹配
.{n,m}n 至 m 次,取最长匹配.{n,m}?n 至 m 次,取最短匹配
.{n,}至少 n 次,取最长匹配.{n,m}?至少 n 次,取最短匹配

创建于 2025/5/13

更新于 2025/5/13