使用python3.x中的regex从文本中删除某些部分

时间:2019-04-01 17:49:07

标签: regex python-3.x replace

我需要从以下给出的所有行中删除该部分,直到:(不包括以日期时间格式出现的:)。是否可以选择长度并将其替换为“”。

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)

2 个答案:

答案 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