[英]match reoccurring words in string using regex in Python
我正在嘗試匹配字符串中重復出現的單詞
我試過re.findall( r"(\\b(\\w+)\\b)((?=.*)\\1)+ , stringToCheck )
但無濟於事。
對於像"ball ball glass table ball glass chair"
這樣的字符串,我想使用正則表達式提取ball, ball, glass, ball, glass
。 有人可以幫忙嗎?
您可以使用正則表達式和列表理解來解決此問題,如下所示:
In [43]: s = "ball ball glass table ball glass chair"
In [68]: splitted = re.findall(r"\w+", s)
In [69]: [item for item in splitted if splitted.count(item) > 1]
Out[69]: ['ball', 'ball', 'glass', 'ball', 'glass']
如果您不拘泥於使用正則表達式,則可以使用以下代碼輕松完成此操作(如問題評論所建議):
from collections import Counter
cnt = Counter()
example_string = "ball ball glass table ball glass chair"
word_list = example_string.split(" ")
for word in word_list:
cnt[word] += 1
print(cnt)
然后可以對此進行過濾,以僅給出計數大於1的那個。
filtered = {k:v for (k,v) in cnt.items() if v > 1}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.