目录
Regular
Python的re模块提供了完整的正则表达式功能。正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它能高效地进行查找、替换、分割等复杂字符串操作。
在Python中,通过 import
re
即可引入这一神器。
匹配规则
单字符匹配
语法 | 功能 | 注意事项 |
. | 匹配除换行符(\n)以外,任意一个字符。 | \.匹配点本身 |
[] | 匹配[]中列举的字符,可以是很多单个,也可以范围 | 范围写法例如[2-6],[“a”-”b”] |
\d | 匹配数字,即0-9 | |
\D | 匹配非数字 | |
\s | 匹配空白,即空格、tab键 | |
\S | 匹配非空白 | |
\w | 匹配单词字符,即a-z,A-Z,0-9,_ | |
\W | 匹配非单词字符 |
数量匹配
语法 | 功能 | 注意事项 |
* | 匹配前一个规则的字符出现0至无数次 | |
+ | 匹配前一个规则的字符出现1至无数次 | |
? | 匹配前一个规则的字符出现0次或1次 | |
{n} | 匹配前一个规则的字符出现n次 | |
{n,} | 匹配前一个规则的字符出现最少n次 | |
{m,n} | 匹配前一个规则的字符出现m到n次 |
边界匹配
语法 | 功能 | 注意事项 |
^ | 匹配字符串的开始 | 放在子表达式前 |
$ | 匹配字符串的结束 | 放在子表达式后 |
\b | 匹配单词的开始或结束 | |
\B | 匹配不是单词开头或结束的位置 |
分组匹配
语法 | 功能 | 注意事项 |
| | 匹配左右任意一个表达式 | |
() | 将匹配的内容里一部分抠出来就用括号 | 抠出的内容不止一个就放到元组里 |
贪婪与懒惰
语法 | 功能 | 注意事项 |
*? | 重复任意次 | 尽可能少重复 |
+? | 重复1次或更多次 | 尽可能少重复 |
?? | 重复0次或一次 | 尽可能少重复 |
{n,m}? | 重复n到m次 | 尽可能少重复 |
{n,}? | 重复n次以上 | 尽可能少重复 |
原版说明
特殊字符
转义序列
模块方法
函数说明
匹配模式
常用匹配规则
掌握正则的关键是根据规则来编写匹配样式,下面列出一些常用的Regular pattern:
1. 匹配出所有整数
>>> import re
>>> pat = '\d+'
>>> txt = 'No.123;Tel:1396260000'
>>> re.findall(pat, txt)
['123', '1396260000']
2. 匹配11位且13开头的整数
注意r'13\d{9}',13开头余下的9位数字用\d{9}表示
>>> import re
>>> txt = '''
... 001:13962600001
... 002:1330626001
... 003:18962600002
... 004:13106260003
... 005:16605200006
... '''
>>> pat = r'13\d{9}'
>>> re.findall(pat, txt)
['13962600001', '13106260003']
......
素材收集中。。。。。。