入门re 正则表达式

1.字符匹配:

a:匹配字符 a

abc:匹配字符串 abc

python 复制代码
import re

result = re.search(r"a", "abcabcd", re.I)
print(result, type(result), result.start(), result.end(), result.group())

result = re.findall(r"abc", "abcabcd", re.I)
print(result)

2.特殊字符:

.:匹配除换行符外的任何单个字符。

python 复制代码
import re
result = re.findall(r".", "abc123=+^$( &% \n", re.S)
print(result)

\d:匹配任何数字,相当于 [0-9]

python 复制代码
import re
result = re.findall(r"\d", "123abc=+*&%#_(^@!")
print(result)

\D:匹配任何非数字字符。

python 复制代码
import re
result = re.findall(r"\D", "123abc=+*&%#_(^@!")
print(result)

\w:匹配任何字母数字字符,相当于 [a-zA-Z0-9_]

python 复制代码
import re
result = re.findall(r"\w", "123abc=+*&%#_(^@!")
print(result)

\W:匹配任何非字母数字字符。

python 复制代码
import re
result = re.findall(r"\W", "123abc=+*&%#_(^@!")
print(result)

\s:匹配任何空白字符(空格、制表符、换行符等)。

python 复制代码
import re
result = re.findall(r"\s", " 123 abc =+*& %#_(^@!")
print(result)

\S:匹配任何非空白字符。

python 复制代码
import re
result = re.findall(r"\S", " 123 abc =+*& %#_(^@!")
print(result)

3.字符集:

[abc]:匹配字符 abc 中的任何一个。

python 复制代码
import re
result = re.match(r"[abc]", "abcabcd")
print(result)

[a-z]:匹配小写字母中的任何一个。

[A-Z]:匹配大写字母中的任何一个。

[0-9]:匹配任何数字。

python 复制代码
import re

result = re.findall(r"[123]", "12345abcdef")
print(result)

result = re.findall(r"[1-5a-f]", "12345abcdef")
print(result)

4.字符集的否定:

[^abc]:匹配除 abc 之外的任何字符。

python 复制代码
import re
result = re.findall(r"^abc", "abc123=+^$ \na( &% ", re.M)
print(result)

5.数量词:

*:匹配前面的元素零次或多次。

python 复制代码
import re

result = re.findall(r"\d*", "12345")
print(result)

result = re.findall(r"\d*?", "12345")
print(result)

+:匹配前面的元素一次或多次。

python 复制代码
import re

result = re.findall(r"\d+", "12345")
print(result)

result = re.findall(r"\d+?", "12345")
print(result)

?:匹配前面的元素零次或一次。

python 复制代码
import re

result = re.findall(r"\d?", "12345")
print(result)

result = re.findall(r"\d??", "12345")
print(result)

{n}:匹配前面的元素正好 n 次。

{n,}:匹配前面的元素至少 n 次。

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

python 复制代码
import re

result = re.findall(r"\d{3}", "12345")
print(result)

result = re.findall(r"\d{2,4}?", "12345")
print(result)

6.位置与边界:

^:匹配输入字符串的开始位置。(re.S,re.M 可以多行检测)

python 复制代码
import re
result = re.findall(r"^a", "abc123=+^$ \na( &% ", re.M)
print(result)

$:匹配输入字符串的结束位置。

python 复制代码
import re
result = re.findall(r" $", "abc123=+^$ \na( &% ", re.M)
print(result)

\b:匹配单词边界。

python 复制代码
import re
result = re.findall(r"\b", "abcdef")
print(result)

\B:匹配非单词边界。

python 复制代码
import re
result = re.findall(r"\B", "abcdef")
print(result)

7.分组和选择:

(abc):匹配并捕获子表达式 abc

python 复制代码
import re

result = re.search(r"(.*)4(.*)c(.*)f", "12345abcdef")
print(result, result.group(), result.group(1), result.group(2), result.group(3))

result = re.findall(r"(.*)4(.*)c(.*)f", "12345abcdef")
print(result[0][0], result[0][1], result[0][2])

a|b:匹配 ab

python 复制代码
import re
result = re.findall(r"[1-5]|[a-f]", "12345abcdef")
print(result)
相关推荐
zx_741484811 天前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Patrick在香港4 天前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
梦帮科技5 天前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
yume_sibai12 天前
正则表达式完全指南(基础语法 + 实战应用 + 性能优化 + 最佳实践)
开发语言·正则表达式·c#
研☆香13 天前
js中使用的正则表达式
开发语言·javascript·正则表达式
2601_9622935317 天前
浅学python | 正则表达式集锦
正则表达式·字符串匹配·python知识·浅学python·ip地址检查
2601_9622955817 天前
Python中正则表达式的知识汇总分享
python·正则表达式·模块·语法·匹配
启观川17 天前
Python基础-第 16 章 综合案例:客户信息管理系统
开发语言·笔记·python·正则表达式
2601_9622940517 天前
Python 操作 Word:如何查找、替换和批量修改文本
python·正则表达式·word·文档处理·查找替换
for_ever_love__22 天前
python基础语法学习: 正则表达式
python·学习·正则表达式