1、提取字符串的場(chǎng)景及公式、命令
背景:目前遇到的場(chǎng)景主要是以某個(gè)字符串開(kāi)始、某個(gè)字符串結(jié)束,提取中間部分的字符,有的時(shí)候需要開(kāi)始的字符,有時(shí)不需要,大概涉及到了4種情況,場(chǎng)景及處理方式如下:
1.1 以某個(gè)字符開(kāi)始、某個(gè)字符結(jié)束,期待的提取結(jié)果包含首末字符串
? ? ? ? 提取公式:a = re.findall("開(kāi)始字符串.*末字符串",str)
1.2 以某個(gè)字符開(kāi)始、某個(gè)字符結(jié)束,期待的提取結(jié)果不包含末字符串,但包含首字符串
? ? ? ? 提取公式:a = re.findall("開(kāi)始字符串.*?(?=末字符串)",str)
? ? ? ? 例子:提取文本中的所有時(shí)間,如圖
? ? ? ? 提取命令:
????????time = re.findall("202.*?(?=,)",content) ?# 也就是提取以202開(kāi)頭的,逗號(hào)結(jié)束的,且不包括逗號(hào)的
1.3 以某個(gè)字符開(kāi)始、某個(gè)字符結(jié)束,期待的提取結(jié)果不包含首字符串,但包含末字符串:
? ? ? ? 提取公式:a = re.findall("(?<=開(kāi)始字符串).*末字符串",str)
1.4 以某個(gè)字符開(kāi)始、某個(gè)字符結(jié)束,期待的提取結(jié)果不包含首、末字符串:
? ? ? ? 提取公式1:a = re.findall("(?<=開(kāi)始字符串).*?(?=末字符串)",str)
? ? ? ? 提取公式2:a = re.findall(".*開(kāi)始字符串(.*)末字符串*",str)
例子:提取mocro_step的數(shù)據(jù)值,前面是固定字符micro_step=,后面是固定字符/global_step,如圖:
? ? ? ?提取命令:
? ? micro_step = re.findall("(?<=micro_step=).*?(?=/global_step)", content) ?# case4 方法1
? ? micro_step = re.findall(".*micro_step=(.*)/global_step*", content) ?# case4方法2
1.5 起始字符串不固定(即從首字符串提取到固定的字符串結(jié)束),用^指定從首字符串開(kāi)始
? ? ? ? 提取公式:a = re.findall('^.*結(jié)束字符串',str)
2、特殊字符-需要轉(zhuǎn)義
2.1 需要轉(zhuǎn)義的特殊字符
2.2? 轉(zhuǎn)義符舉例:提取r值也就是以字符串lr=[開(kāi)頭,逗號(hào)結(jié)尾之間的字符串,如圖:
提取命令:?learning_rate = re.findall(".*lr=\[(.*?), *", content)
提取結(jié)果:
????????-1.0274676347695078e-07
3、總結(jié)一下知識(shí)點(diǎn),主要涉及了這幾種情況
????????a、提取的字符串需要包含起始字符串--上面的1.1
????????b、提取的字符串不需要包含起始字符串--上面的1.2~1.4
????????c、提取到的字符串如果匹配到多個(gè),只截取到第一個(gè),不要后面的部分
?????????????????解決辦法:使用?
????????d、提取到的字符串如果匹配到多個(gè),要匹配到的全部的字符串
????????????????解決辦法:使用*
4、參考文章
Python正則表達(dá)式,這一篇就夠了! - 知乎
python通過(guò)正則匹配指定字符開(kāi)頭與結(jié)束提取中間內(nèi)容_python匹配字符串中間的文字-CSDN博客
Python正則表達(dá)式及常用匹配_python 正則表達(dá)式匹配_Sicc1107的博客-CSDN博客
python正則表達(dá)式--RE模塊(轉(zhuǎn)義r 和 \,貪婪模式與非貪婪模式) - 知乎文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-783882.html
利用python 正則 讀取txt文件中指定字符之間的數(shù)據(jù),并保存到excel中_python txt 某兩行中間的數(shù)據(jù)_洛星塵pro的博客-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-783882.html
到了這里,關(guān)于python 正則表達(dá)式提取字符串的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!