我需要从以下给出的所有行中删除该部分,直到:
(不包括以日期时间格式出现的:
)。是否可以选择长度并将其替换为“”。
a.txt
Mon Sep 17 04:01:35 2018 abc.mnba:15885: afhoashfodcasnc.
Mon Sep 17 04:01:35 2018 abc.mnba:16199: inancaaldajijeijiodncna
Mon Sep 17 04:01:35 2018 abc:9: iunancn andjcadjjacnn noancoan
Mon Sep 17 04:01:35 2018 abc: abc = {
'uf' => '',
'uft' => 'afbcjbja',
'ufd' => 'saflkacklmsakcmk',
'ufc' => 'ubakcb'
};
预期解决方案
afhoashfodcasnc.
inancaaldajijeijiodncna
iunancn andjcadjjacnn noancoan
$abc = {
'uf' => '',
'uft' => 'afbcjbja',
'ufd' => 'saflkacklmsakcmk',
'ufc' => 'ubakcb'
};
askpfmkasmkvmksamvmk
Kdriver: jafnajncjjanjnnfjnjajjf
fkcjkackkakkafjkajkfjdka
I hcjfdajnfcjnajncjjanjnjnjndjnfjcnjn
I afkjakcnakkdfjncnalldkfkdafkccnnlkn
kdfjkackanjdnfjajsfdcjcnjnjanjnfcaksfaljscll
fajncjnjanjdnfjnajsdnfjcnjakncjajnfjajdfjanjncjnjnja
ijfiandfnanejfdcijiandnajfnejdfhncncjnjanjnedfncjanncfjanjcnj
akmfkcmkmakmkdmfekmfkmkckmakmdkmfkmkamdfcammdckmckcmkckdkal ladmflmalcml
我的解决方案
import re
with open("a.txt", 'r') as f:
for lines in f:
line = re.sub(r"^.{20}", "", lines)
print(line)
答案 0 :(得分:1)
那呢?
import re
with open("a.txt", 'r') as f:
for lines in f:
line = re.sub(r".*:", "", lines)
print(line)
请注意,它也会删除 Kdriver:。
答案 1 :(得分:1)
模式必须比您的建议复杂一些。我已经测试过了这一点,它似乎达到了您的预期结果:
import re
with open("a.txt", 'r') as f:
for lines in f:
if ":" in lines:
line = re.findall(r":\s?\D.+$", lines)[0][1:].strip()
else:
line = lines
print(line)
这会打印出以下结果
afhoashfodcasnc.
inancaaldajijeijiodncna
iunancn andjcadjjacnn noancoan
$abc = {
'uf' => '',
'uft' => 'afbcjbja',
'ufd' => 'saflkacklmsakcmk',
'ufc' => 'ubakcb'
};
askpfmkasmkvmksamvmk
Kdriver: jafnajncjjanjnnfjnjajjf
fkcjkackkakkafjkajkfjdka
I hcjfdajnfcjnajncjjanjnjnjndjnfjcnjn
I afkjakcnakkdfjncnalldkfkdafkccnnlkn
kdfjkackanjdnfjajsfdcjcnjnjanjnfcaksfaljscll
fajncjnjanjdnfjnajsdnfjcnjakncjajnfjajdfjanjncjnjnja
ijfiandfnanejfdcijiandnajfnejdfhncncjnjanjnedfncjanncfjanjcnj
akmfkcmkmakmkdmfekmfkmkckmakmdkmfkmkamdfcammdckmckcmkckdkal ladmflmalcml