Python在删除重复字符后将单词与单词列表进行匹配
问题描述:
我有一个包含正面和负面情绪的单词列表,例如['happy', 'sad']
Python在删除重复字符后将单词与单词列表进行匹配
现在处理鸣叫我除去这样重复字符时(只允许2次重复):
happpppyyy -> happyy
saaad -> saad
支票如果例如saad
是单词列表的一部分,现在应返回True
,因为它类似于sad
。
我该如何实现这种行为?
答
我将建立正则表达式动态转向一句话:
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
花了我一段时间了解这种方法。我认为这对我来说应该是足够的。用这种方法我实际上可以跳过删除多个字符的步骤 –
@PranavCBalan解释? –
@PranavCBalan:看起来像(低语)Perl给我。 – cdarke
需要考虑的事情:我认为有可能是不可避免的有错误的匹配:例如,如果萨德应该匹配伤心,那么应该陡峭的匹配步骤? –