亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Python 中使用 re 查找多個匹配項(初學者問題)

在 Python 中使用 re 查找多個匹配項(初學者問題)

MMMHUHU 2023-06-20 13:33:39
我需要使用正則表達式和 Collection 找到多個匹配項(包含在列表中)。我試過這段代碼,但它顯示空字典:some_words_lst = ['caT.', 'Cat', 'Dog', 'paper', 'caty', 'London', 'loNdon','londonS']words_to_find = ['cat', 'london']r = re.compile('(?:.*{})'.format(i for i in words_to_find),re.IGNORECASE)count_dictionary = {}for item in some_words_lst:    if r.match(item):        count_dictionary['i']+=1print(count_dictionary)感謝幫助!
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

您需要另一種語法來重新


也不要忘記在 += 之前初始化字典中的鍵


import re

some_words_lst = ['caT.', 'Cat', 'Dog', 'paper', 'caty', 'London', 'loNdon','londonS']


words_to_find = ['cat', 'london']


r = re.compile('|'.join(words_to_find), re.IGNORECASE)


count_dictionary = {"i": 0}


for item in some_words_lst:

? ? if r.match(item):

? ? ? ? count_dictionary['i']+=1


print(count_dictionary)

UPD:根據評論,我們需要匹配項目的數量。像這樣又快又臟的東西是怎么回事?


import re

some_words_lst = ['caT.', 'Cat', 'Dog', 'paper', 'caty', 'London', 'loNdon','londonS']


words_to_find = ['cat', 'london']


r = re.compile('|'.join(words_to_find), re.IGNORECASE)


count_dictionary = {word: 0 for word in words_to_find}


for item in some_words_lst:

? ? if r.match(item):

? ? ? ? my_match = r.match(item)[0]

? ? ? ? count_dictionary[my_match.lower()]+=1


print(count_dictionary)


查看完整回答
反對 回復 2023-06-20
  • 1 回答
  • 0 關注
  • 283 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號