前言
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
一、匹配单个字符:
1). :匹配任意除了换行的任意1个字符
2)[]:匹配[]中列举的字符
3)\d :匹配数字0-9
4)\D:匹配非数字
5)\s:匹配空白、空格、tab键
6)\S:匹配非空白
7)\w:匹配单词字符a-ZA-Z0-9
8)\W:匹配非单词字符
二、匹配多个字符:
1)*:匹配前一个字符出现0次或者无限次。可有可无
2)+:匹配前一个字符出现1次或者无限次。至少得有一次
3)?:匹配前一个字符出现1次或者0次。要么有1次要没没有
4){m}:匹配前一个字符出现m次
5){m,n}:匹配前一个字符出现从m到n次
6){m,}:加上,前一个字符出现m到无限次
7)r'\d+' : 匹配任意的数字
三、匹配开头结尾和分组
- 匹配开头结尾:
1)^: 匹配字符串开头
2)& :匹配字符串结尾
- 匹配分组:
1)|: 匹配左右任意一个表达式
2)(ab) :将括号中的字符做为一个分组
3) \num: 引用分组num匹配到的字符串
四、正则匹配方法的使
1)match()方法:从头开始匹配,如果找到,则不再进行往下匹配,需要搭配group()一起使
2)search()方法::可以匹配任意位置
3)findall()方法: 匹配多个结果
4)sub() 方法:将匹配到的数据进行替换
5)split() 方法:对字符串进行拆分
6) compile() 函数: 将一个字符串编译为字节代码
五、贪婪匹配和非贪婪匹配(*****)
1).* :贪婪模式(匹配)
2).* ?: 非贪婪模式(匹配)