2016-11-26 31 views
3

我需要捕獲像所有字符串(\ W \ S),具有3的最小長度,用一個Python正則表達式的findall方法。這是:找到儘可能多的「字」(子字符串)儘可能,它是由至少3個連接組成的。的Python正則表達式,用於捕獲所有字符串等( W S)+

例如,對於:

This is an e x a m p l e about T H I S question. 

的findall應該返回:

\S\S+(\w\s+){3,}\S+ 
+0

什麼是'A'在'A \ s'?這是一個大寫字母嗎? – Mohammad

+0

等一下,*你想匹配什麼*?添加更多示例。 – Blacksilver

+0

你有沒有先嚐試你的正則表達式? https://regex101.com –

回答

6

用下面的辦法與特定的正則表達式:

["e x a m p l e ", "T H I S "] 

與已經嘗試過

s = 'This is an e x a m p l e about T H I S question.' 
result = re.findall(r'\b((?:\w\s){3,})', s) 

print(result) 

輸出:

['e x a m p l e ', 'T H I S '] 
+1

豎起大拇指看起來很容易,而不是。你能否解釋更多關於'?:'部分(非消耗性的東西或其他東西)。 –

+1

@ Jean-FrançoisFabre,歡迎光臨。沒有非捕獲組'((\ W] \ S){3})',除了外組,它會抓住每個完整的匹配給出結果'[(「示例」的不需要的最後部分,' E「),(」這個「」 S「)]' – RomanPerekhrest

+0

的問題,當我試圖回答這個問題我有。 –

相關問題