re模块的正则表达式规则
什么是正则表达式?
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。换句话说,正则表达式是一种用来描述字符串模式的工具。它使用一些特殊的符号和规则来匹配、查找或替换字符串中的特定部分。
python的re模块提供了许多特殊符号来构建正则表达式:详见官网https://docs.python.org/3.12/library/re.html
1. 定位符,指定字符串中特定的位置
字符 | 描述 |
^ | 匹配字符串的开始位置 |
$ | 匹配字符串的结束位置 |
\b | 匹配一个单词边界,即单词与空白字符之间的位置 |
\B | 匹配非单词边界 |
注:不能将限定符与。。。一起使用
2.非打印字符(特殊序列):格式为\character
,如果character
不是ASCII数字或ASCII字母,则生成的re将匹配第二个字符,例如\$
匹配字符$
。
字符 | 描述 |
\f | 匹配一个换页符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\s | 匹配任何一个空白字符,包括空格、制表符、换页符等,等价于[\f\n\r\t\v] |
\S | 匹配任何一个非空白字符 |
\t | 匹配一个制表符,等价于\x09和\cI |
\v | 匹配一个垂直制表符,等价于\x0b和\cK |
\cx | |
\w | 匹配字母、数字、下划线,等价于[A-Za-z0-9_] |
3.特殊字符,用于匹配重复的模式、选择模式或组合模式
字符 | 描述 |
. | 匹配除换行符以外的所有字符 |
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达式一次或多次 |
? | 匹配前面的子表达式零次或一次 |
{n} | 匹配前面的子表达式恰好n次 |
{n,} | 匹配前面的子表达式至少n次 |
{n,m} | 匹配前面的子表达式至少n次,但不超过m次 |