仅使用python一次打印具有此子字符串的行

时间:2016-07-18 11:54:06

标签: python regex string

我有问题。我有一个包含大量字符串的文本文件。 我想只搜索那些带有子字符串的人。 但它给了我所有可能的比赛。 我的代码是:

ok1.0 = 259
ok1.1 = 259
ok1.2 = 259
ok2.0 = 260
ok2.1 = 260
ok2.2 = 260
ok3.0 = 261
ok3.1 = 261
ok3.2 = 261

打印:

ok1.0 = 259
ok2.0 = 260
ok3.0 = 261

没关系 - 它找到了所有需要的线条。但是我最后不需要3行相同的数字。如何只在行尾添加唯一数字的行?我该怎样做才能获得这样的输出?

"'getCandidateId('\' + ${candidate.id} + '\');'"

我无法搜索正常表达式,例如ok [0-9] .0< - 这是不允许的。我必须在上面找到最后只有唯一数字的行。 感谢

1 个答案:

答案 0 :(得分:1)

您应该以某种方式使用set()看到的值(数字)来过滤掉未来的实例。鉴于您的文件已排序,每行的格式为tag = value

name = 'ok'
seen = set()
with open('C:/Users/Desktop/text.txt','r') as fin:
    for line in fin:
        # Split stripped line to a tag and a value
        tag, value = line.strip().split(' = ', 1)
        if name in tag and value not in seen:
            seen.add(value)
            print line

将仅打印第一个匹配的行。