Python(09)正则表达式

特殊字符

1. 基本元字符

.:匹配除换行符以外的任意单个字符。
*:匹配前面的元素零次或多次。
+:匹配前面的元素一次或多次。
?:匹配前面的元素零次或一次。

2. 定量符

{n}:匹配前面的元素恰好 n 次。
{n,}:匹配前面的元素至少 n 次。
{n,m}:匹配前面的元素至少 n 次,但不超过 m 次。

3. 字符类

[abc]:匹配方括号内的任意一个字符(在这个例子中是 a、b 或 c)。
[^abc]:匹配不在方括号内的任意一个字符(在这个例子中是除了 a、b 和 c 以外的任何字符)。
[a-z]:匹配指定范围内的任意一个字符(在这个例子中是从 a 到 z 的任意一个小写字母)。
\d:匹配任意一个数字,等同于 0-9
\D:匹配任意一个非数字字符,等同于 \^0-9
\w:匹配任意一个字母数字字符,包括下划线,等同于 a-zA-Z0-9_
\W:匹配任意一个非字母数字字符,包括下划线,等同于 \^a-zA-Z0-9_
\s:匹配任意一个空白字符,包括空格、制表符、换页符等,等同于 \\t\\n\\r\\f\\v
\S:匹配任意一个非空白字符,等同于 \^ \\t\\n\\r\\f\\v

4. 锚点

^:匹配输入字符串的开始位置。
$:匹配输入字符串的结束位置。
\b:匹配单词边界。
\B:匹配非单词边界。

5. 分组和引用

(abc):将 abc 视为一个整体进行匹配,并捕获该分组。
(?:abc):将 abc 视为一个整体进行匹配,但不捕获该分组。
\1、\2 等:引用之前捕获的分组。

6. 选择

a|b:匹配 a 或 b。

7. 转义字符

\:用于转义特殊字符,例如 . 匹配实际的点号,而不是任意字符。

常用方法

  • 1.‌re.search(pattern, string[, flags])‌
    在字符串中搜索第一个与正则表达式模式匹配的结果,返回一个Match对象,如果没有找到匹配项则返回None。
  • 2.‌re.match(pattern, string[, flags])‌
    从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None。
  • 3.‌re.fullmatch(pattern, string[, flags])‌
    如果整个字符串完全匹配正则表达式模式,则返回一个Match对象,否则返回None。
  • 4.‌re.findall(pattern, string[, flags])‌
    返回字符串中所有与正则表达式模式匹配的子串,作为一个列表返回。
  • 5.‌re.finditer(pattern, string[, flags])‌
    返回一个迭代器,其中每个元素都是一个Match对象,对应于字符串中所有与正则表达式模式匹配的部分。
  • 6.‌re.sub(pattern, repl, string[, count, flags])‌
    将字符串中所有与正则表达式模式匹配的部分替换为指定的字符串,并返回替换后的字符串。
  • 7.‌re.split(pattern, string[, maxsplit, flags])‌
    根据正则表达式模式分割字符串,返回一个列表,包含分割后的各个部分。
  • 8.‌re.compile(pattern[, flags])‌
    编译正则表达式模式,返回一个正则表达式对象,可以用于后续的匹配操作,提高效率。

常见正则使用

复制代码
QQ号:[1 - 9][0 - 9]{4, }(腾讯QQ号从10000开始)
帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
身份证号(15位、18位数字):^\d{15}|\d{18}$
短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
相关推荐
踏着七彩祥云的小丑5 天前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
bosins5 天前
密码复杂度验证正则表达式
正则表达式
小森林之主5 天前
正则表达式零宽断言实战:凌晨3点的服务器报警
python·正则表达式·零宽断言·服务器报警·正则速查
小森林之主6 天前
Python re 模块速查:从实战对比中掌握正则表达式
python·正则表达式·性能测试·re模块·编程实战
程序猿零零漆6 天前
Python进阶之路:正则表达式、高级语法与核心数据结构(链表、二叉树)全解析
数据结构·python·正则表达式
2301_781833528 天前
Python 正则表达式入门教程
开发语言·python·正则表达式
五阿哥永琪8 天前
正则表达式
数据库·mysql·正则表达式
小森林之主8 天前
深入正则表达式:核心语法与实战剖析
javascript·python·正则表达式·编程技巧·字符串处理
小森林之主8 天前
JavaScript 正则表达式:从零开始的实战对比
javascript·正则表达式·前端开发·性能对比·文本处理
不吃土豆的马铃薯8 天前
C++ 正则表达式入门详解
linux·服务器·网络·数据库·c++·正则表达式