Python-re
re模块称为正则表达式;
1、常见正则表达式特殊符号及其用法
| 字符 | 含义 |
|---|---|
| . | 表示匹配除了换行符 |
| | | 表示匹配正则表达式A或者B |
| ^ | 1、匹配输入字符串的开始位置 2、如果设置了re.MULTILINE标志,^也匹配换行符之后的位置 |
| $ | 1、匹配输入字符串的结束位置 2、如果设置了re.MULTILINE标志,$也匹配换行符之前的位置 |
| \ | 1、转义符,将一个普通字符变为特殊字符 2、解除转义功能:"\."表示配标点本身 3、引用序号对应的子组所匹配的字符串 |
| [...] | 字符类,匹配所包含的任意一个字 例1:[abc]:能匹配其中的单个字符 例2:[a-z0-9]:能匹配指定范围的字符,可取反(在最前面加入^) 例3:[2-9] [3-9]:能够做组合匹配 |
| M和N 均为非负整数,其中 M <= N 例1:{n,m}:代表前面字符最少出现n次,最多出现m次: 例2:{M,} 表示至少匹配 M 次 例3:{,N}等价于(0,N) 例4:{N}表示需要匹配 N 次 |
|
| * | 匹配前面的子表达式零次或多次,等价于 |
| + | 匹配前面的子表达式一次或多次,等价于 |
| ? | 匹配前面的子表达式零次或一次,等价于 |
2、匹配方法
2.1、match:在目标文本的开头进行匹配
#匹配成功返回匹配对象hello,不成功返回None
find = re.math('hello', str1)
2.2、search:在整个目标文本中进行匹配
re.search(r'(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])','192.168.1.1')
2.3、findall:扫描整个目标文本,搜索并返回所有能匹配到的子串,如果没有匹配的返回空列表
2.4、finditer:扫描整个目标文本,返回所有与规则匹配的子串组成的迭代器
2.5、fullmatch:要求目标文本要完全匹配规则,否则返回None
2.6、sub:将与规则匹配的子串替换为其他文本
a = 'i love you!'
p = re.compile('i')
b = p.sub('she',a,count=0) #count默认=0,为全部替换
print(b)
b = re.sub('she','i',a,count=0)
print(b)
输出:
she love you!
i love you!
2.7、split:从与规则匹配的子串进行切割,返回切割后子串组成的列表

浙公网安备 33010602011771号