2015-11-09 121 views
0

我有一個很大的字符串,我想查找所有在這個字符串中匹配的輸入序列。Python找到字符串中的所有模糊匹配序列

因此,舉例來說,我想找到的防守籃板所有可能的匹配:

播放器XY有10個防守籃板只在比賽的第3季度,這是一個防禦戰團隊,有超過80%防守籃板率,而且的個籃板,在被球員防守平均數2之間是一個驚人的3.5

我想找到所有的粗體字,然後提取它們。

我設法構建了一個腳本來完成提取,但它只適用於完全匹配。

我正在考慮使用difflib.SequenceMatcher但我卡住了。

+0

我可以:

import re #Find [defence(s)][space][rebound(s)][space][any word] re.findall('defensive[\w]* rebound[\w]* [\w]+', s) #Find [rebound(s)][space][any word][space][any word][space][any word] re.findall('rebound[\w]* [\w]+ [\w]+ [\w]+', s) 

findall收益匹配的列表

如果所有的比賽都在大膽的字相同的形式,你可以提取它們已經給你一個headstart,看到你已經將'regex'包含到關鍵字列表中:正則表達式用於調查包含特定內容的行的文本(例如'grep -i rebou nd'將搜索所有行,包含反彈字(不區分大小寫)。一旦找到這些行,就需要使用除正則表達式以外的其他技術來查找這些行中的條目。 – Dominique

+0

你必須首先定義什麼是同義詞。例如對於一臺電腦來說,「防禦性」和「防禦性」是相似的。其次,對於我來說,我認爲「防守籃板」與「防守籃板」有關,但「防守籃板率」是如何相關的? –

回答

0

你可以在Python中使用正則表達式,你應該有一個goog模式來提取它們。

例如:

re.findall('rebound[ \w]*defence', s) 
re.findall('defensive[\w]* rebound[\w]*[ rate]*', s) 
相關問題