正则表达式用于排列长度为N的M个字符

时间:2016-09-12 00:49:23

标签: regex permutation

我需要一个表示给定M个字符的排列的正则表达式,并且排列字符串的长度应为N.例如,我有1和0,所以M=2和排列字符串的长度需要为3 (即N=3),然后我有:

000, 001, 010, 011, 100, 101, 110, 111

N=2时,我有:

00, 01, 10, 11

正则表达式应该是什么?

谢谢!

编辑: 只是想说清楚,输入不仅限于数字,也可以是字母,例如,我在基因组学中得到了代表腺嘌呤,胸腺嘧啶,胞嘧啶和鸟嘌呤的{A, T, C, G},我需要每组排列三个,所以我可以有一个列表:

ATC, ATG, ACT, AGA

谢谢!

1 个答案:

答案 0 :(得分:1)

Heres正则表达式匹配数字1-n。你可以修补它来做你想做的事。

^(?=[1-n]{n}$)(?!.*(.).*\1).*$

n = 4的样本输入

1234
2431
abcde
4321
1231
3412

<强>输出

1234  *MATCH*
2431  *MATCH*
abcde
9010
4321   *MATCH*
1231   *MATCH*
3412   *MATCH*