使用Regex仅返回文件中字符串的第一个出现位置

时间:2018-03-22 17:19:10

标签: python regex

我有一个包含以下值的文件:

162.0000
162.2000
162.4000
162.6000
162.8000
162.0000
162.2000
162.4000
162.6000
162.8000

但我只想打印这些值:

162.0000
162.2000
162.4000
162.6000
162.8000

这是我目前的代码:

pattern=re.compile(r'(1[6][2]\.[0-9][0]+)')
if pattern.search(line):
    print line

有没有办法只显示每个数字的第一次出现?谢谢!

1 个答案:

答案 0 :(得分:2)

仅靠正则表达式无法解决问题,请使用set跟踪您已经看到的内容:

pattern=re.compile(r'(1[6][2]\.[0-9][0]+)')
seen = set()
if pattern.search(line):
    if line not in seen:
        seen.add(line)
        print line