Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Regex表达式查找您知道字母顺序但不知道字母顺序的单词?_Python_Regex - Fatal编程技术网

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]
  • 将单词中的字符转换为ascii值
  • 将单词中每个唯一的ascii值映射到索引
  • 返回单词中每个字符的索引
  • 字符顺序(“苹果”)

    [1,4,4,3,2]


    到目前为止,您尝试了什么?它是如何进行的?使用正则表达式有什么特别的原因吗?为什么您认为正则表达式在这里会有用?您是否有可能使用的有效单词列表,或者您是否可以使用标准单词列表,例如拼字游戏中合法的单词列表?使用英语单词列表和
    (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比问题中指定的更简单,并且可能更有用,因为它会导致更少的匹配。