JosiP JosiP - 2 months ago 35
Python Question

'negative' pattern matching in python

I have the following input,

OK SYS 10 LEN 20 12 43
1233a.fdads.txt,23 /data/a11134/a.txt
3232b.ddsss.txt,32 /data/d13f11/b.txt
3452d.dsasa.txt,1234 /data/c13af4/f.txt

And I'd like to extract all of the input except the line containing
OK SYS 10 LEN 20
" and the last line which contains a single
That is, I want to extract the following

1233a.fdads.txt,23 /data/a11134/a.txt
3232b.ddsss.txt,32 /data/d13f11/b.txt
3452d.dsasa.txt.1234 /data/c13af4/f.txt

I tried the following,

for item in output:
matchObj ="^(?!OK) | ^(?!\\.)", item)
if matchObj:
print "got item " + item

but it does not work, as it does not produce any output.


See it in action:

matchObj ="^(?!OK|\\.).*", item)

Don't forget to put .* after negative look-ahead, otherwise you couldn't get any match ;-)