【发布时间】:2021-04-11 01:14:25
【问题描述】:
似乎我找不到解决这个问题的方法,这可能是一个简单的问题:我希望能够用一个简单的正则表达式匹配 5 个指定数字的所有可能排列,而无需重复,必须使用所有数字。所以,对于这个序列:
12345
有效的排列是:
54321
但是
55555
无效。
但是,如果提供的数字有一次或多次相同的数字,则只有在这种情况下,接受的排列才会有那些重复的数字,但每个数字只能使用一次。例如,如果提供的数字是:
55432
我们看到 5 提供了 2 次,因此它在每个排列中也必须出现两次,并且一些接受的答案是:
32545
45523
但这是错误的:
55523
(并非所有原始数字都被使用,并且 5 重复了两次以上)
我非常接近解决这个问题:
(?:([43210])(?!.*\1)){5}
但不幸的是,当提供多个相同的数字时它不起作用(如 43211)。
【问题讨论】:
标签: python regex permutation