2017-07-27 47 views
-3
text = "This text is not important but name of teacher, name of dog and name of cat is very interesting" 

我需要在列表查找字(S)在Python

match = [teacher, dog, cat] 
+0

好的,你有什麼嘗試導致? – roganjosh

+0

請改善您的問題質量。你可以在下面找到更多提示:[**我如何提出一個好問題?**](https://stackoverflow.com/help/how-to-ask)和[**如何創建一個最小,完整,和可驗證示例**](https://stackoverflow.com/help/mcve)頁面。 –

回答

5

re模塊(import re第一)使用re.findall加上旁邊的「名」字的特定子之後:

In [1033]: re.findall('(?<=name of)\w+', text) 
Out[1033]: ['teacher', 'dog', 'cat'] 

'(?<=name of)\w+' 

使用固定寬度的lookbehind,提取後面的文本'name of '

或者,稍微防彈一點的正則表達式應該是:'(?:name\s+of\s+)(\w+)'(考慮到不同的空格字符)。

+0

Nitpick:'(?:\ s +)(\ w +)'的名稱可能會比lookbehind更好,以防在'prefix'和單詞本身之間有多個空格。 – zwer

+1

@zwer Nitpick接受。 –