• 预备
  • 基础语法
  • 容器类型
  • 函数
  • 面向对象
  • 输入输出
  • 进程控制
  • 线程控制
  • 正则表达式
  • 网络编程
  • 图形界面
  • 常见问题
  • API 帮助手册

  • 设置

4370

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, "[email protected]"): print("有效邮箱")
Loading...

#元字符

元字符含义示例
.匹配任意一个字符(除换行符)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 17:01:14

更新于 2025/5/13 17:01:14