Python 通过正则表达式查找特定列值

Python 通过正则表达式查找特定列值,python,regex,Python,Regex,我有一个包含多行的txt文件,如下所示 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

我有一个包含多行的txt文件,如下所示

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
现在我正在查找第三列中有“0”的行

我正在使用python正则表达式包。我尝试的是
re.match((.*)s+(0-9)\s+(1)”,第行)
但没有帮助


我应该寻找什么样的正则表达式模式?

对此,您可能不需要正则表达式。您可以从行的右侧去除尾随空格,然后检查最后一个字符:

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

你可能不需要正则表达式。您可以从行的右侧去除尾随空格,然后检查最后一个字符:

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

只需拆分行并从列表中读取值

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

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()
输出:

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

只需拆分行并从列表中读取值

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

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()
输出:

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

不要使用正则表达式,逐行读取文件,拆分每行并检查最后一列。第三列?哪个第三栏?第一行第三列中有1行,但第二列中有10行blank@DineshPundkar带有1和0的类。目标C
NSRegularExpression
类与Python有什么关系?可能是
(?m)^\d+\.\d+\h+\d+\h+0$
假定此文件的结构一致…并且python支持
\h
。不要使用正则表达式,逐行读取文件,拆分每一行并检查最后一列。第三列?哪个第三栏?第一行第三列中有1行,但第二列中有10行blank@DineshPundkar带有1和0的类。目标C
NSRegularExpression
类与Python有什么关系?可能是
(?m)^\d+\.\d+\h+\d+\h+0$
假定此文件的结构是一致的…并且python支持
\h
。为什么不拆分该行?然后,您可以将第三列(始终存在,只是在示例中不是100%清晰)与0进行比较。如果OP将只使用末尾包含
0
的行,那么在检查之前拆分可能是不必要的,如果第三列中的行有一个
10
,该怎么办?@SebastianLenartowicz:我问了同样的问题,但第三列似乎只包含0或1。(至少在示例中)为什么不拆分该行?然后,您可以将第三列(始终存在,只是在示例中不是100%清晰)与0进行比较。如果OP将只使用末尾包含
0
的行,那么在检查之前拆分可能是不必要的,如果第三列中的行有一个
10
,该怎么办?@SebastianLenartowicz:我问了同样的问题,但第三列似乎只包含0或1。(至少在示例中)