在2个重复的文字之间打印行

时间:2014-08-01 18:09:04

标签: python regex

上一个问题由于没有得到完全重复而重复。这是一个不同的问题,我在整个网络上搜索了这个问题!

我是新手并加入此网站以解决此问题,我想在文本文件的2个字之间打印一些特定的行。

文本文件

....

accounts
Bank
Credit
 good value
 money
Amount  
Amount

我需要打印“Credit”和“Amount”之间的界限。问题:这里有两个“金额”,所以我无法解决。

预期产出:

good value
money

请帮忙!答案将不胜感激!

编码: 导入重新

result = []

with open("acc.txt", "r") as f:
    a = [x.rstrip() for x in f]
    # store its index
    for item in a:
        if item.startswith("Credit"): # same as your re check
            break
    ind = a.index(item) #here it produces index no./line no.
    result.extend(a[ind:])
        if item.startswith("Amount"): 
            break
    ind = a.index(item) #here it produces index no./line no.
    result.extend(a[:ind])
for item in result:
  print item

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码,

>>> import regex
>>> s = """accounts
... Bank
... Credit
...  good value
...  money
... Amount  
... Amount"""
>>> m = regex.findall(r'(?s)(?<=Credit\s*\b).*?(?=Amount)', s)
>>> for i in m:
...     print i
... 

 good value
 money