为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

元芳怎么了 2023-02-22 15:45:24
我有这段代码,它使用正则表达式搜索匹配项。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 循环执行此操作。因为我尝试过但没有成功。我可能做错了什么,无论如何都不是程序员。谢谢
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

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


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 循环执行此操作。因为我尝试过但没有成功。我可能做错了什么,无论如何都不是程序员。谢谢


查看完整回答
反对 回复 2023-02-22
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号