如何将正则表达式扩展为实际值

时间:2018-11-28 07:21:17

标签: java regex

我正在寻找开源Java库,它可以帮助我从数值正则表达式中扩展所有可能的值,例如:如果我输入范围1234 [7-9]作为输入,它应该输出12347,12348,12349 ,类似地处理123 [4-6] [7-9],它将转换为12347、12357、12367,依此类推。除了想重新发明轮子,我想知道是否有任何图书馆可以做到这一点。仅适用于具有定义范围的数字正则表达式。

1 个答案:

答案 0 :(得分:2)

我曾经尝试过Xeger,它足以应付类似于您上面的简单表达。您还需要automaton jar软件包,可以将其下载为库以使用Xeger。

示例用法:

    String regex = "123[4-6][7-9]"; 
    Xeger generator = new Xeger(regex);
    Set<String> generated = new HashSet<>();
    for (int i = 0; i < 100; i++) {
        generated.add(generator.generate());
    }
    System.out.println(generated);

    //[12367, 12348, 12359, 12349, 12357, 12368, 12369, 12347, 12358]