根据正则表达式随机生成满足条件的…

今天QA同学突然提了个需求,能不能根据正则表达式反向随机生成满足表达式格式的字符串.
这个还真挺有意思,对应自动化测试时非常有用,尤其是在写自动化测试的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

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...