如果它匹配python中的模式,则返回行

时间:2018-01-04 18:02:07

标签: python

如果模式匹配,如何从文件中打印行?但有一点需要注意。搜索不应该考虑文件行中的任何括号。 我的搜索模式为CurrentPrincipalLegalEventAssociation

这是文件的内容

941,agg.list,CurrentPrincipalMailingAddressStreetLine1,CompanyElementDefinition
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition
8798c3,atom.list,CurrentPrincipal[MailingAddressStreetLine1][*],CompanyElementDefinition
2e43d1,atom.list,CurrentPrincipal[MailingAddressStreetLine2][*],CompanyElementDefinition
b3a13b,atom.list,CurrentPrincipal[MailingContinentName][*],CompanyElementDefinition

当我进行搜索时,它应该返回以下行 c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition

这里的模式没有任何括号,但我想要的行中有括号。我正在寻找一个程序,可以在匹配模式时忽略括号。

我是python的新手,我所知道的是如果它匹配特定的单词而不是这种类型的话就打印一行。 这是我尝试过的但是没有用。

for line in file.splitlines():
    if "CurrentPrincipalLegalEventAssociation" in line:
        print line

1 个答案:

答案 0 :(得分:1)

这应该做你需要的:

with open(filename) as myfile:
    for row in myfile:
        if 'CurrentPrincipalLegalEventAssociation' in row.replace('[', '').replace(']', ''):
            print(row)

循环遍历文件中的行,删除括号后检查字符串,如果找到则返回匹配。