-
1. 正则表达式
- 1.1 测试工具
- 1.2 限定符
- 1.3 字符集
- 1.4 运算符
- 1.5 元字符
- 1.6 懒惰匹配和贪婪匹配
我们读取文件内容,肯定不是单纯为了输出或者重新写入,对于文本我们一定有一些查找、定位的需求。
在Python中,还有一个专门用于文本处理的库,那就是re
库。
下面我会介绍re库涉及的正则表达式的基本知识。
参考课程
1. 正则表达式
正则表达式是用来进行字符串匹配的一个字符形式。
1.1 测试工具
常见的正则表达式测试工具有:
- regex101
- 代码编辑器搜索栏的正则表达式匹配
1.2 限定符
-
?
abc?
表示字符c
需要出现0次或者1次服务器托管网,或者换句话说,字符c
至多出现一次。也就是说,abc?
相当于abc
和ab
这两个字符串。
-
*
ab*c
表示字符b
需要出现0次或者多次,或者换句话说,字符b
可以出现任意多次。也就是说,ab*c
相当于ac
、abc
、abbc
、ab……bc
等多个字符串。
-
+
ab+c
表示字符b
需要出现1次或者多次,或者换句话说,字符b
至少出现一次。也就是说,ab+c
相当于abc
、abbc
、ab……bc
等多个字符串。
注意ab*c
和ab+c
的细微区别。
-
{}
-
{num}
ab{3}c
表示字符b
需要出现3次,或者换句话服务器托管网说,字符b
只能出现2次。也就是说,ab{2}c
相当于abbc
这一个字符串。
-
{num1,num2}
ab{2,5}c
表示字符b
需要出现2或3或4或5次,也就是说,ab{2,5}c
相当于abbc
、abbbc
、abbbbc
、abbbbbc
这四个字符串。
-
{num,}
ab{2,}c
表示字符b
需要出现2次及以上,也就说,ab{2,}c
相当于abbc
、abbbc
、abbbbc
、ab……bc
等无数个字符串。
1.3 字符集
在正常情况下,上述的限定符只会对其前面的一个字符起作用。如果想要某个字符串作为一个组合,可以使用字符集。
(ab)+c
表示字符串ab
需要出现1次或者多次,或者换句话说,字符串ab
至少出现一次。也就是说,(ab)+c
相当于abc
、ababc
、abababc
、ab……abc
等多个字符串。
1.4 运算符
-
|
a(b|d)c
表示字符串b
出现1次或者字符串d
出现1次,也就是说,a(b|d)c
相当于abc
、adc
这两个字符串。
a(boy|girl)c
也同样适用,相当于aboyc
或者agirlc
这两个字符。
-
[]
[]
表示匹配字符能选择的范围,成为字符类,例如,[abc]+
只会匹配abc这三个字母出现一次或多次的字符串,而一般更经常使用的是[a-zA-Z0-9]*
表示由大小写字母和数字组成的字符串,[a-zA-Z0-9_]*
表示由大小写字母、数字和下划线组成的字符串。
-
^
^
表示取反字符类,也就是说,[^a-zA-Z0-9]*
表示除了大小写字母、数字符号以外的其他字符出现一次或多次的字符串。
-
.
表示转置,把一些有特殊意义的字符转变为实际字符 -
b
b
表示字符边界
1.5 元字符
-
d
数字字符-
D
非数字字符
-
-
w
单词字符,包括英文字母、数字、下划线-
W
非单词字符
-
-
s
空白字符,包括空格、制表符、换行符-
S
非空白字符
-
-
.
任意字符,不包含换行符 -
^
匹配字符串的开头,例如^a
匹配行首的a -
$
匹配字符串的结尾,例如x$
匹配行尾的x
1.6 懒惰匹配和贪婪匹配
- 贪婪匹配
默认匹配尽可能多的字符。 - 懒惰匹配
例子:匹配
和
>
之间的任意字符,而则会使用懒惰匹配
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 直播回顾|走进元服务,携手小强停车探索鸿蒙新流量阵地
本期直播《“元”来如此,“服务”直达——揭秘鸿蒙新流量阵地》聚焦元服务的商业流量价值,介绍元服务提供的服务直达和卡片动态变化等轻量化服务。网约停车旗舰平台小强停车做客直播间,分享小强停车在HarmonyOS生态中,如何通过元服务为广大用户带来更加便捷易…