首页 > 解决方案 > 获取正则表达式字符串的所有可能组合

问题描述

我有一个正则表达式:ATG(C|G|A)(C|T)GA

上面的正则表达式可以采用任何形式,|在字符串的任何位置只有 OR ( ) 特殊字符,括号内有任意数量的字母。

我想在列表中匹配此字符串的所有组合:

ATGCCGA
ATGCTGA
ATGGCGA
ATGGTGA
ATGACGA
ATGATGA

我找不到任何可以做到这一点的 python 库。

标签: pythoncombinationspermutation

解决方案


您可以使用字符串的动态部分的笛卡尔积,itertools.product然后与字符串的其他静态部分连接。

>>> from itertools import product
>>> [f'ATG{i}{j}GA' for i,j in product('CGA', 'CT')]
['ATGCCGA', 'ATGCTGA', 'ATGGCGA', 'ATGGTGA', 'ATGACGA', 'ATGATGA']

推荐阅读