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