如何打印不止一个匹配的python正则表达式

我有这段代码,它使用正则表达式搜索匹配项。


with open('ip-new.txt','r') as csvfile1, open('city.txt', 'r', encoding="utf8" ) as file1:

    readCS = csv.reader(csvfile1, delimiter=';')

    reader = file1.readlines()

    for row in readCS:

        for line in reader:

            if all(re.search(fr"\b{word}\b", line, re.IGNORECASE) for word in row[:2]):

                print(str(row) + line)

                

一旦我运行它,我将得到我正在寻找的匹配项,但显然可能有多个匹配项,所以我得到以下输出:


['ZA', 'EAST LONDON'] 'id': 'ZA~EC~East London'


['GB', 'BRIDGWATER'] 'id': 'GB~ENG~Bridgwater'


['GH', 'TEMA'] 'id': 'GH~AA~Tema'


['TH', 'BANGKOK'] 'id': 'TH~10~Bangkok'


['TH', 'BANGKOK'] 'id': 'TH~10~Bangkok Noi'


['TH', 'BANGKOK'] 'id': 'TH~10~Bangkok Yai'

前 3 场比赛是唯一的,所以我不需要打印它们,我只想打印一场以上的比赛。我不确定如何在计数器中使用 while 循环执行此操作。因为我尝试过但没有成功。我可能做错了什么,无论如何都不是程序员。谢谢


元芳怎么了
浏览 164回答 1
1回答

繁华开满天机

我有这段代码,它使用正则表达式搜索匹配项。with open('ip-new.txt','r') as csvfile1, open('city.txt', 'r', encoding="utf8" ) as file1:    readCS = csv.reader(csvfile1, delimiter=';')    reader = file1.readlines()    for row in readCS:        for line in reader:            if all(re.search(fr"\b{word}\b", line, re.IGNORECASE) for word in row[:2]):                print(str(row) + line)                一旦我运行它,我将得到我正在寻找的匹配项,但显然可能有多个匹配项,所以我得到以下输出:['ZA', 'EAST LONDON'] 'id': 'ZA~EC~East London'['GB', 'BRIDGWATER'] 'id': 'GB~ENG~Bridgwater'['GH', 'TEMA'] 'id': 'GH~AA~Tema'['TH', 'BANGKOK'] 'id': 'TH~10~Bangkok'['TH', 'BANGKOK'] 'id': 'TH~10~Bangkok Noi'['TH', 'BANGKOK'] 'id': 'TH~10~Bangkok Yai'前 3 场比赛是唯一的,所以我不需要打印它们,我只想打印一场以上的比赛。我不确定如何在计数器中使用 while 循环执行此操作。因为我尝试过但没有成功。我可能做错了什么,无论如何都不是程序员。谢谢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python