python re库是python用于正则表达式的三方库
目录
函数
re.compile
re.findall
re.search
re.sub
re.split
group([group1,....])
修饰符
正则表达式详情
不进行转义re.compile(r’
r表示其后的字符串按原样表示,不使用转义字符
该函数将创建一个正则表达式的对象,可以实现更有效率的复用。
import re
find_xx = re.compile('正则表达式',修饰符)
该函数将会搜索所有满足条件的字符串
import re
r = re.findall('正则表达式',文本内容,修饰符)
返回值会因为正则表达式的不同而不同 共计三种情况
1. 如果正则表达式中有多个括号时,列表的元素为多个字符组合成的元组,元组中的字符串格式与括号数对应,内容与正则表达式顺序对应。
import re
test = '2018年的下半年, 9月份, 27日'
pattern = re.compile(r'(\d)+(年|月|日)')
res = pattern.findall(test)
print(res)
# 输出结果为:[('8','年'),('9','月'),('7','日')]
2.正则表达式中只有一个括号,列表元素为字符串时,则内容和括号中的正则表达式对应
import re
text = '2018年的下半年,9月份, 27日'
pattern = re.copile(r'\d+(年|月|日|)')
res = pattern.findall(text)
print(res)
# 输出结果: ['年', '月', '日']
3.当给出的正则表达式不带括号的时候,列表的元素为字符串,此时字符串为整个正则表达式匹配的内容。
import re
text = '2018年的下半年,9月份, 27日'
pattern = re.compile(r'\d{4}年|\d{1}月|\d{2}日')
res = pattern.findall(text)
print(res)
# 输出结果: ['2018年', '9月', '27日']
搜索第一个满足条件的字符串,查找到第一个停止
import re
find_xx = re.copile('正则表达式','修饰符')
res = re.search(find_xx,text)
替换所有满足条件的字符串
详情:python re模块(正则表达式) sub()函数详解_leo的学习之旅的博客-CSDN博客_python sub函数
import re
text = 'hello 123 world 456'
replacedStr = re.sub("\d+","222",text)
print(replacedStr)
# 返回'hello 222 world 222'
匹配分割string maxsplit是允许被分割成几个子串,默认是0最大化字串,如果是1则是从原本字符串中切出一个字串,其他字串整串返回。
import re
a = re.split('正则表达式','文本',[maxsplit=0])
print(a)
返回一个或者多个子组
import re
m = re.search('正则表达式','文本')
print(m.group(2))
# 返回第二个字串
re修饰符 | 全称 | 功能 |
---|---|---|
re.L | LOCALE | 使预定字符类\w\W\b\B\s\S取决于当前区域设定 |
re.M | MULTILINE | 多行模式,改变'^'和'$'的行为 |
re.S | DOTALL | 点任意匹配模式,改变'.'的行为 |
re.I | IGNORECASE | 忽略大小写 |
re.U | UNICODE | 是预定字符类\w\W\b\B\s\S\d\D取决于unicode定义的字符属性 |
re.X | VERBOSE | 详细模式。该模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。 |
Python 正则表达式 | 菜鸟教程 (runoob.com)