Kashi Vishwa
Kashi Vishwa

Reputation: 121

Finding particular column value via regex

I have a txt file containing multiple rows as below.

56.0000         3       1
62.0000         3       1
74.0000         3       1
78.0000         3       1
82.0000         3       1
86.0000         3       1
90.0000         3       1
94.0000         3       1
98.0000         3       1
102.0000        3       1
106.0000        3       1
110.0000        3       0
116.0000        3       1
120.0000        3       1

Now I am looking for the row which has '0' in the third column .

I am using python regex package. What I have tried is re.match("(.*)\s+(0-9)\s+(1)",line) but of no help..

What should be the regular expression pattern I should be looking for?

Upvotes: 0

Views: 150

Answers (2)

Dinesh Pundkar
Dinesh Pundkar

Reputation: 4196

Just split line and read value from list.

>>> line = "56.0000         3       1"
>>> a=line.split()
>>> a
['56.0000', '3', '1']
>>> print a[2]
1
>>>

Summary:

f = open("sample.txt",'r')
for line in f:
    tmp_list = line.split()
    if int(tmp_list[2]) == 0:
        print "Line has 0"
        print line
f.close()

Output:

C:\Users\dinesh_pundkar\Desktop>python c.py
Line has 0
110.0000        3       0

Upvotes: 1

Moses Koledoye
Moses Koledoye

Reputation: 78554

You probably don't need a regex for this. You can strip trailing whitespaces from the right side of the line and then check the last character:

if line.rstrip()[-1] == "0": # since your last column only contains 0 or 1
   ...

Upvotes: 2

Related Questions