引言
re 库是Python标准库的一部分,不需要额外安装。要使用 re 库,只需在代码中导入它
文章目录
- 引言
- 一、re库的定义
- 二、`re` 库中常用的功能和函数:
- 2.1 搜索模式
- 2.2 查找模式
- 2.3 替换模式
- 2.4 分割模式
- 2.5 编译模式
- 2.6 错误信息
- 2.7 支持的模式
- 2.8 匹配对象
- 三、正则表达式的定义
- 四、正则表达式的元字符及其含义
- 4.1 点号 `.`
- 4.2 星号 `*`
- 4.3 加号 `+`
- 4.4 问号 `?`
- 4.5 竖线 `|`
- 4.6 括号 `()`
- 4.7 反斜杠 `\`
- 4.8 反斜杠后跟数字 `\n`
- 4.9 美元符号 `$`
- 4.10 井号 `#`
- 4.11 双引号 `"`
- 4.12 单引号 `'`
- 4.13 花括号 `{n,m}`
- 4.14 花括号 `{n,}`
- 4.15 花括号 `{n}`
- 五、总结(思维导图)
一、re库的定义
re库 是一个内置的库,用于处理正则表达式(Regular Expression)
正则表达式是一种强大的文本处理工具,可以用于搜索、匹配、替换、分割字符串等操作
二、re
库中常用的功能和函数:
2.1 搜索模式
re.search(pattern, string, flags=0)
: 在字符串中搜索正则表达式的匹配re.match(pattern, string, flags=0)
: 在字符串的开始位置搜索正则表达式的匹配re.fullmatch(pattern, string, flags=0)
: 在字符串的整个长度上搜索正则表达式的匹配
2.2 查找模式
re.findall(pattern, string, flags=0)
: 在字符串中查找所有匹配正则表达式的子串,并返回一个列表re.finditer(pattern, string, flags=0)
: 在字符串中查找所有匹配正则表达式的子串,并返回一个迭代器
2.3 替换模式
re.sub(pattern, repl, string, count=0, flags=0)
: 在字符串中替换所有匹配正则表达式的子串re.subn(pattern, repl, string, count=0, flags=0)
: 在字符串中替换所有匹配正则表达式的子串,并返回替换后的字符串和替换次数
2.4 分割模式
re.split(pattern, string, maxsplit=-1, flags=0)
: 在字符串中根据正则表达式的匹配进行分割,并返回一个列表
2.5 编译模式
re.compile(pattern, flags=0)
: 将正则表达式编译成一个模式对象,以便重复使用
2.6 错误信息
re.error
: 捕获re
模块中的错误
2.7 支持的模式
re.I
: 忽略大小写。re.M
: 多行模式,影响^
和$
的行为re.S
: 点号匹配所有字符,包括换行符re.X
: 扩展模式,允许正则表达式中包含注释和空白字符
2.8 匹配对象
match
对象:表示匹配到的结果。match
对象可以访问group()
、start()
、end()
、span()
等方法
三、正则表达式的定义
正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它允许你定义一系列字符串的规则,然后使用这些规则来查找、匹配或替换文本中的模式
在正则表达式中,有一些特殊的字符被称为“元字符”(Metacharacters),它们用来表示特殊的字符集、定位点、重复匹配等
四、正则表达式的元字符及其含义
4.1 点号 .
- 匹配除换行符
\n
之外的所有单个字符
4.2 星号 *
- 匹配前面的字符零次或多次
- 例如,
a*
匹配 “a”, “aa”, “aaa”, … 以及任何长度的字符串
4.3 加号 +
- 匹配前面的字符一次或多次
- 例如,
a+
匹配 “aa”, “aaa”, … 以及任何长度的字符串
4.4 问号 ?
- 匹配前面的字符零次或一次
- 例如,
a?
匹配 “a” 或 “”
4.5 竖线 |
- 表示逻辑或,匹配任意一个选项
- 例如,
a|b
匹配 “a” 或 “b”
4.6 括号 ()
- 用于分组,可以用来组合匹配模式
- 例如,
(a|b)+
匹配 “aa” 或 “ab” 或 “aaa” 或 “aba” 等
4.7 反斜杠 \
- 用于转义字符,使其失去特殊含义
- 例如,
\d
匹配一个数字,而d
则匹配字符 “d”
4.8 反斜杠后跟数字 \n
- 表示匹配新行,其中
n
是数字,代表换行符的位置 - 例如,
\n
匹配换行符,\0
匹配字符串的结束
4.9 美元符号 $
- 匹配字符串的末尾
- 例如,
a$
匹配以 “a” 结尾的字符串
4.10 井号 #
- 通常用于注释,但不同的编程语言可能会有不同的解释
- 例如,在Python中,
#
用于注释,但在正则表达式中,它没有特殊含义
4.11 双引号 "
- 在正则表达式中,双引号用于引用字符串,使其作为一个整体进行匹配
- 例如,
"a"
匹配字符串 “a”
4.12 单引号 '
- 类似于双引号,单引号也用于引用字符串,使其作为一个整体进行匹配
- 例如,
'a'
匹配字符串 “a”
4.13 花括号 {n,m}
- 匹配前面的字符
n
到m
次 - 例如,
a{2,4}
匹配 “aaa” 或 “aaaa”
4.14 花括号 {n,}
- 匹配前面的字符至少
n
次 - 例如,
a{2,}
匹配 “aa” 或 “aaaaa” 等
4.15 花括号 {n}
- 匹配前面的字符恰好
n
次 - 例如,
a{2}
匹配 “aa”
这些元字符在正则表达式中扮演着关键角色,它们允许你创建复杂的匹配模式,从而有效地处理文本数据
注意:在使用这些元字符时,需要注意它们可能会在不同的编程语言中具有不同的特殊含义