这个还真挺有意思,对应自动化测试时非常有用,尤其是在写自动化测试的case的时候,如果可以根据规则进行随机生成,测试工作将会大大提高效率.因为我们以前都是用正则进行校验,并没有做类似反向的操作.然后google之
果然有这么个东西.不多说贴代码...这个鬼叫
Xeger
package com.qunar.xeger;
import nl.flotsam.xeger.Xeger;
public class XegerTest {
public static void main(String[] args) {
String regex = "[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}";
//三位数
Xeger generator = new Xeger(regex);
for (int i = 0; i < 2000; i++) {
String result = generator.generate();
System.out.println(result);
assert result.matches(regex);
}
}
}
结果如下,看来还是挺ok的
106.433.601
676.317.893
490.884.177
187.327.513
141.045.456
365.366.232
567.664.228
624.774.216
071.483.373
089.802.138
675.559.342
253.742.791
360.112.624
678.587.655
224.510.673
145.617.038
656.584.855
132.857.253
670.638.464
852.831.675
937.487.663
357.717.132
332.717.650
321.358.373
231.876.187
544.841.281
756.875.649
416.405.727
547.757.870
459.842.682
226.621.249
469.582.654
381.678.130
590.769.143