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:从与规则匹配的子串进行切割,返回切割后子串组成的列表

posted @ 2022-12-18 11:27  Fanslyx  阅读(21)  评论(0)    收藏  举报