如何从RegEx(正则表达式)生成所有组合?

时间:2017-04-01 16:21:31

标签: python regex linux bash perl

例如,我有以下正则表达式:

60 [FP] LP [FP] XXXXXX

现在需要所有可能的组合,在这种情况下:

60的˚F LP的˚F XXXXXX

60的˚F LP的 P XXXXXX

60的 P LP的˚F XXXXXX

60的 P LP的 P XXXXXX

输入RegEx长度为12个字符,由大写字母[A-Z]和数字[0-9]

组成

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。使用rexgen工具(https://github.com/teeshop/rexgen)可以从给定的正则表达式生成所有组合:)

$ rexgen 60[FP]LP[FP]XXXXXX
60FLPFXXXXXX
60PLPFXXXXXX
60FLPPXXXXXX
60PLPPXXXXXX

答案 1 :(得分:1)

正则表达式模式定义了一组字符串,因此理论上可以使用它来生成集合中的字符串列表,但它们并不意味着这样做。我不确定某人是否写了一个模块来做这件事。

另一方面,一个glob被设计成完全按照你想要的那样做。你可以改用glob吗?

say while glob('60{F,P}LP{F,P}XXXXXX');