正则表达式
基本匹配规则
- . 匹配 任意1个字符,除了\n
- \d 匹配数字,即 0-9
- \D 匹配非数字,即 不是数字
- \s 匹配空白,即 空格,tab键
- \S 匹配 非空白
- \w 匹配单词字符,即 a-z,A-Z,0-9,_,支持语言(中文….)
- \W 匹配非单词字符
- [] 匹配[]中列举的字符,中括号中 只取一个
- r 是忽略转义字符打印
mm = r”\nabc”
# 输出 \nabcre.match(r”\nabc”,mm)
# 输出 \\nabc
[123] 只能是 123中的一个
[^123] 取反,只要 不是123都可以
[a-z5-9] 26个小写字母,5到9
数量匹配问题
- * 匹配字符可以出现0次或者无限次,即可有可无
- + 匹配字符可以出现1次或者无限次,即至少有一次
- ? 匹配字符可以出现0次或者1次,即要么有1次,要么没有
- {m} 匹配字符出现m次
- {m,} 匹配字符至少出现m次
- {m,n} 匹配字符出现从m到n次
- ^ 匹配字符串开头
- $ 匹配字符串结尾
手机号描述:**(“1[35678]\d{9}”, “13666666666”)**
分组匹配
- | 匹配左右任意一个表达式
- (ab) 将括号中字符作为一个分组
- \1 引用第一个分组匹配到的字符串
- (?P<name>) 分组起别名
- (?P=name) 引用别名为name分组