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}?$
相关推荐
前端世界3 天前
Python 正则表达式实战:用 Match 对象轻松解析拼接数据流
python·正则表达式·php
Edward.W3 天前
别再和正则表达式死磕了!这套AI工具集让你的开发效率翻倍⚙️[特殊字符]
人工智能·正则表达式
beijingliushao3 天前
58-正则表达式
数据库·python·mysql·正则表达式
雷达学弱狗3 天前
正则表达式,字符串的搜索与替换
正则表达式
良木林3 天前
JS中正则表达式的运用
前端·javascript·正则表达式
ComputerInBook3 天前
C++编程语言:标准库:第37章——正则表达式(Bjarne Stroustrup)
开发语言·c++·正则表达式
雷达学弱狗3 天前
正则表达式与转义符的区别。注意输入的东西经过了一次转义,一次正则表达式。\\转义是单斜杠\\在正则表达式也是单斜杠所以\\\\经过两道门才是字符单斜杠
正则表达式
Zzz_睡不醒5 天前
JS(正则表达式)
javascript·正则表达式·c#
啊啊啊啊8435 天前
函数,数组与正则表达式
前端·chrome·正则表达式
MediaTea5 天前
Python:正则表达式
开发语言·c++·python·正则表达式