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

时间:2015-10-30 08:41:21

标签: python regex

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

示例中的子字符串:' table',' e提供' 示例字符串:

'Today is a good day to do up the table furnishings. Lets go to the store.'

对于' table',我想提取表#39; 为了提供',我想提取桌面家具'。

我目前的代码是:

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!!")

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

感谢大家的帮助。

1 个答案:

答案 0 :(得分:7)

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

\w*e furnish\w*

See demo at regex101