簡體   English   中英

如何打印不止一個匹配 python 正則表達式

[英]How to print just more than one match python regex

我有這段代碼,它使用正則表達式搜索匹配項。

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)
                

一旦我運行這個我會得到我正在尋找的匹配,但顯然可能有不止一個匹配,所以我得到以下 output:

['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 場比賽是 uniq,所以我不需要打印它們,我只是想打印任何不止一場比賽的東西。 我不知道我怎么能適應一個計數器用一個while循環來做到這一點。 正如我嘗試並沒有成功。 我可能做錯了什么,無論如何都不是程序員。 謝謝

只需將這些行存儲在一個列表中,如果您獲得多個行,則打印它們:

for row in readCS:
    lines = [line for line in reader
        if all(re.search(fr"\b{word}\b", line, re.IGNORECASE) for word in row[:2])]
    if len(lines) > 1:
        for line in lines:
            print(str(row) + line)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM