在python中基于子串匹配提取整个单词

XJL*_*XJL 6 python regex

我正在寻找Python中的正则表达式.我有一长串文本,我有一个子串列表,可以在长文本字符串中进行匹配.

示例子串:'table','e furnish'示例字符串:

'Today is a good day to do up the table furnishings. Lets go to the store.'
Run Code Online (Sandbox Code Playgroud)

对于'table',我想提取'table'.对于'e furnish',我想提取'桌面摆设'.

我目前的代码是:

for item in checklist:
 pattern = r"[\s](.*)" + item +"([a-z]){0,2}[\s\.]"
 print pattern    
 matchObj = re.search(pattern, line)
 if matchObj:
   print "matchObj.group() : ", matchObj.group()
 else:
   print ("No match!!")
Run Code Online (Sandbox Code Playgroud)

但是我无法找到封装子串的全部单词.问题是子串可以是单个或多个单词,它可能匹配整个单词或只是单词的一部分.对于那些具有多个单词的子串,提取的单词必须在一起,而其间没有其他单词.

感谢大家的帮助.

小智 7

你可以使用\w*任意数量的单词字符作为小丑.

\w*e furnish\w*
Run Code Online (Sandbox Code Playgroud)

请参阅regex101上的演示