簡體   English   中英

在Python中使用regex匹配字符串中重復出現的單詞

[英]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.

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