user15051990
user15051990

Reputation: 1895

Remove some part from the text using regex in python3.x

I need to remove the part until : from all the lines ( excluding : appearing in datetime format) given as below. Is there a way to pick the length and replace it with " ".

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'
        };

Expected Solution

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

My Solution

import re

with open("a.txt", 'r') as f:
    for lines in f:
        line = re.sub(r"^.{20}", "", lines)
        print(line)

Upvotes: 0

Views: 129

Answers (2)

John Nielsen
John Nielsen

Reputation: 194

The pattern has to get a little more complicated than your suggestion. I have tested this one and it seems to get your expectedd result:

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)

This prints out the following result

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

Upvotes: 1

sentence
sentence

Reputation: 8923

What about this?

import re

with open("a.txt", 'r') as f:
    for lines in f:
        line = re.sub(r".*:", "", lines)
        print(line)

Note that it removes Kdriver: as well.

Upvotes: 1

Related Questions