我需要一个表示给定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
等
谢谢!
答案 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*