文章目录
先附上一个正则表达式的检测网址:正则表达式测试工具
1.常用的匹配规则
模式 | 描述 |
---|---|
\w | 匹配字母、数字及下划线 |
\W | 匹配不是字母、数字及下划线的字符 |
\s | 匹配任意空白字符,等价于[\t\n\r\f] |
\S | 匹配任意非空字符 |
\d | 匹配任意数字,等价于[0-9] |
\D | 匹配任意非数字的字符 |
\A | 匹配字符串开头 |
\Z | 匹配字符串结尾,如果存在换行,只匹配到换行前的结束字符串 |
\z | 匹配字符串结尾,如果存在换行,同时还会匹配换行符 |
\G | 匹配最后匹配完成的位置 |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
^ | 匹配一行字符串的开头 |
$ | 匹配一行字符串的结尾 |
. | 匹配任意字符。除了换行符 |
[…] | 用来表示一组字符,单独列出,比如[AMK]匹配a、m或k |
[^…] | 不在[]中的字符,比如[^abc]匹配除了abc之外的字符 |
* | 匹配0个或多个表达式 |
+ | 匹配1个或多个表达式 |
? | 匹配0个或1个前面的正则表达式定义的片段,非贪婪方式 |
{n} | 精确匹配n个前面的表达式 |
{n,m} | 匹配n到m次由前面正则表达式定义的片段,非贪婪方式 |
alb | 匹配a或b |
() | 匹配括号内的表达式,也表示一个组 |
2.match()
match方法会尝试从字符串的起始位置匹配正则表达式
import re
str = 'Hello 123 345 WEOIDS 23sd2 23 _ _ 234'
s = re.match('^Hello\s\d{3}\s\d{3}\s\w{6}\s\w{5}',str)
print(s)
print(s.group())
^是匹配字符串的开头,也就是以Hello开头;然后\s匹配空白字符串,\d匹配数字,我们可以用\d\d\d连续匹配3个数字,不过这样有些麻烦。也可以用{3}代表执行\d三次。\s匹配空格。后面与前面相同。
mathch方法中,第一个参数传入正则表达式代码,第二个参数传入要匹配的字符串。
打印结果,为SRE_Match对象,证明匹配成功。
group()方法可以输出匹配到的内容
span()方法可以输出匹配的范围
3.匹配目标
可以使用()将