29 正则表达式 re模块
一.正则表达式
官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,
这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式
作用:
1.规范字符串规则(通过一个规则从一段字符串中找到符合规则的内容)
2.判断某段字符串是否符合规则.
(一).字符组 [ - ]从小往大指 按照ascii的顺序
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
字符分为很多类,比如数字、字母、标点等等(二).字符 元字符 匹配内容
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\n 匹配一个换行符
\t 匹配一个制表符
\b 匹配一个单词的结尾
^ 匹配字符串的开始
$ 匹配字符串的结尾
\W 匹配非字母或数字或下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配字符a或字符b
() 匹配括号内的表达式,也表示一个组
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符
(三).量词 量词 用法说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
(四).字符集 字符集[][^]
李[杰莲英二棍子]* 表示匹配"李"字后面[杰莲英二棍子]的字符任意次
李[^和]* 表示匹配一个不是"和"的字符任意次
[\d] 456bdha3 表示匹配任意一个数字,匹配到4个结果
[\d]+ 456bdha3 表示匹配任意个数字,匹配到2个结果
(五).分组 或| [^]
身份证号码是一个长度为15或18个字符的字符串,如果是15位则全部