Python在删除重复字符后将单词与单词列表进行匹配

问题描述:

我有一个包含正面和负面情绪的单词列表,例如['happy', 'sad']Python在删除重复字符后将单词与单词列表进行匹配

现在处理鸣叫我除去这样重复字符时(只允许2次重复):

happpppyyy -> happyy 

saaad -> saad 

支票如果例如saad是单词列表的一部分,现在应返回True,因为它类似于sad

我该如何实现这种行为?

+0

@PranavCBalan解释? –

+1

@PranavCBalan:看起来像(低语)Perl给我。 – cdarke

+1

需要考虑的事情:我认为有可能是不可避免的有错误的匹配:例如,如果萨德应该匹配伤心,那么应该陡峭的匹配步骤? –

我将建立正则表达式动态转向一句话:

happy 

h+a+p+p+y+ 

传递的 “快乐” 字的列表,以这样的:

import re 

re_list = [re.compile("".join(["{}+".format(c) for c in x])) for x in ['happy', 'glad']] 

然后对其进行测试(使用any返回True如果任何快乐正则表达式匹配:

for w in ["haaappy","saad","glaad"]: 
    print(w,any(re.match(x,w) for x in re_list)) 

结果:

haaappy True 
saad False 
glaad True 
+0

花了我一段时间了解这种方法。我认为这对我来说应该是足够的。用这种方法我实际上可以跳过删除多个字符的步骤 –