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}?$
相关推荐
BruceXu5 天前
\b 在中文里会静默失效:三个正则坑和一份能用的字符边界方案
正则表达式
阿昭L6 天前
正则表达式
正则表达式·编译原理
波力海苔夹心脆6756 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing038 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦9 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义
小白快快跑哦11 天前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
MoRanzhi120311 天前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理
临床数据科学和人工智能兴趣组13 天前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
小白快快跑哦13 天前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
小白快快跑哦15 天前
python-字符串全解(六):正则表达式-修饰符
python·正则表达式·修饰符