一、python中的正则表达式
1、匹配特定字符
- .:匹配任何字符(除了换行符)
- ^:匹配输入字符串的开始
- $:匹配输入字符串的结束
- \d:匹配任何数字,等同于[0-9]
- \D:匹配任何非数字字符
- \s:匹配任何空白字符
- \S:匹配任何非空白字符
- \w:匹配任何字母或数字或下划线,等同于[a-zA-Z0-9_]
- \W:匹配任何非字母、非数字和非下划线的字符
2、重复字符
- *:匹配前面的子表达式零次或多次
- +:匹配前面的子表达式一次或多次
- ?:匹配前面的子表达式零次或一次
- {n}:n是一个非负整数。匹配确定的n次
- {n,}:n是一个非负整数。至少匹配n次
- {n,m}:m和n均为非负整数。最少匹配n次且最多匹配m次
3、选择、分组和引用
- |:表示或者,比如a|b匹配‘a’或‘b’。
- ():将几个项组合为一个单元
- \:转义特殊字符,例如\()表示匹配真实的“(”字符,而不是作为分组符
- \num:引用分组num匹配到的字符串
- (?P<name>):分组起别名
- (?P=name):引用别名为name分组匹配到的字符串
4、预定义模式
- \d+或\D+:匹配一个或多个数字或非数字字符。
- \s+或\S+:匹配一个或多个空白或非空白字符。
5、边界条件
- ^:在方括号外面表示否定,也可以表示字符串的开始。在方括号内表示非负整数。
- $:表示字符串的结束
- \b:匹配一个单词的边界
- \B:匹配非单词边界
6、贪婪与非贪婪匹配
默认情况下,正则表达式是贪婪的,即它们尽可能多地匹配(只要还能符合其他要求)。可以使用?来使正则表达式变为非贪婪的(尽可能少的匹配)。
二、re正则表达式
1、引入正则模块
import re#引入正则表达式
2、主要使用的方法match(),从左到右进行匹配
result = re.match(pattern, str)
#pattern为要校验的规则
#str为要进行校验的字符串