Python Regex表达式查找您知道字母顺序但不知道字母顺序的单词?
这是一个很难回答的问题,但如果你有这个词:Python Regex表达式查找您知道字母顺序但不知道字母顺序的单词?,python,regex,Python,Regex,这是一个很难回答的问题,但如果你有这个词:“苹果”。按字母顺序,它的字母将被列为[code>['a'、'e'、'l'、'p'、'p'] 因此,如果您将1分配给'a',2分配给'e',等等,您就知道这个单词的字母遵循以下模式:14532 所以我在想如何制作一个正则表达式来搜索字母顺序相同的单词。这甚至可能是一个python脚本,我只需要用大约100万个单词做一次 为更清晰起见,请编辑: 使用上述系统,并给定一个数字,即“14532”返回给定列表中按字母顺序排列的所有单词。这是一个可爱的小脑筋急转弯
“苹果”
。按字母顺序,它的字母将被列为[code>['a'、'e'、'l'、'p'、'p']
因此,如果您将1
分配给'a'
,2
分配给'e'
,等等,您就知道这个单词的字母遵循以下模式:14532
所以我在想如何制作一个正则表达式来搜索字母顺序相同的单词。这甚至可能是一个python脚本,我只需要用大约100万个单词做一次
为更清晰起见,请编辑:
使用上述系统,并给定一个数字,即“14532”返回给定列表中按字母顺序排列的所有单词。这是一个可爱的小脑筋急转弯
def char_order(word):
ascii_values = [ord(letter) for letter in word]
order_mapping = dict(zip(sorted(set(ascii_values)), xrange(1,len(set(ascii_values))+1)))
return [order_mapping[value] for value in ascii_values]
到目前为止,您尝试了什么?它是如何进行的?使用正则表达式有什么特别的原因吗?为什么您认为正则表达式在这里会有用?您是否有可能使用的有效单词列表,或者您是否可以使用标准单词列表,例如拼字游戏中合法的单词列表?使用英语单词列表和
(1,4,5,3,2)
模式,下面是我发现的一些词:阿古德·艾尔德·艾尔哈·阿尔法·阿姆尼亚·阿姆尼克·阿姆勒充足的ANOLE Ante反苹果围裙贴身纵火艺术阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟拉·阿瑟COSEC COSED COSED COSED COSED COSED COSED COSED COZIE DIKED Dine DINGE Didge DIVED DOOLE掺杂DOOLE DOTED DOTED DOTED Doved Doved除了不做我需要做的事情之外,没有理由使用regex。Python也可以很好地工作。还有@PM2Ring,我只是想了解更多的算法和你将如何做,而不是实际的单词。除了在OP的系统中,“苹果”映射到14532
和15432同样可以接受之外。这是错误的函数逻辑。这就是我要找的。我可以循环浏览我的列表,为每个单词生成这个列表,并检查它是否是我正在寻找的。我想从相反的方向开始,从数字列表开始,然后以某种方式找到匹配的单词。一个人的作业是另一个人的脑筋急转弯。@chilypepper为什么[1,4,4,3,2]
可以接受?我以为你想让“苹果”映射到(1,4,5,3,2)
?FWIW,这个trnsformation比问题中指定的更简单,并且可能更有用,因为它会导致更少的匹配。