一、特殊字符-需要转义
eg:转义符:
待匹配的字符串:lr的值,及下图中字符串lr=[和字符串,之间的数据
正则写法: learning_rate = re.findall(".*lr=\[(.*?), *", content)
处理结果:
-1.0274676347695078e-07
二、提取结果中需要包含开始结束的字符串
1、开始、结束的字符串是确定的
a = re.findall('起始字符串.*结束字符串',str)
2、起始字符串不固定(即从首字符串提取到固定的字符串结束),用^指定从首字符串开始
a = re.findall('^.*结束字符串',str)
三、
1、提取的字符串不要包含末字符串
2、提取的字符串不包含起始字符串
5、提取到的字符串如果匹配到多个,只截取到第一个,不要后面的部分
6、提取到的字符串如果匹配到多个,要匹配到的全部的字符串
四、例子
1、提取包含2023开头的,结束是逗号的字符串
字符串:
[2023-09-22 12:55:47,865] [INFO] [logging.py:96:log_dist] [Rank 0] step=14660, skipped=0, lr=[-1.2329611617234227e-07, -1.2329611617234227e-07], mom=[(0.9, 0.999), (0.9, 0.999)]
正则1:time = re.findall("202.+?,", content)
结果1:2023-09-22 12:55:47,
正则2: time = re.findall("202.*?(?=,)",content)
结果2:2023-09-22 12:55:47
知识点:
1、如果想要匹配某个字符串开头的且包含这个字符串的情况,则直接以这个字符串开头,然后
三、参考文章
Python正则表达式,这一篇就够了! - 知乎
python通过正则匹配指定字符开头与结束提取中间内容_python匹配字符串中间的文字-CSDN博客
Python正则表达式及常用匹配_python 正则表达式匹配_Sicc1107的博客-CSDN博客
python正则表达式--RE模块(转义r 和 \,贪婪模式与非贪婪模式) - 知乎
利用python 正则 读取txt文件中指定字符之间的数据,并保存到excel中_python txt 某两行中间的数据_洛星尘pro的博客-CSDN博客