asp.net(c#) 使用Rex正则来生成字符串数组的代码
作者:
我们在项目中,经常要使用正则表达式,现在有一个工具可以按正则表达式生成数据.正则表达式的语法忘记了吗?
看这儿.如果你熟悉正则表达式
/// <summary>
/// Generates the test.
/// </summary>
/// <remarks>Author Petter Liu http://wintersun.cnblogs.com </remarks>
[Test]
public void GenerateTest()
{
string regex = @"^1(3[4-9]|5[012789]|8[78])\d{8}$";
RexSettings settings = new RexSettings(regex) { k = 10, encoding = CharacterEncoding.ASCII};
var results = RexEngine.GenerateMembers(settings);
foreach (var result in results)
{
Console.WriteLine(result);
}
}
输出:
18897190518
18889349691
18792280668
18831202949
15789824598
15998890392
13709912389
18779992048
13967892889
15928882992
这里我们使用的是手机号码的正则表达式.设置生成数是10,编码ASCII.还有很多选项.可以看它的成员.这些字符串数据用来做什么就看你的了.
Author: Petter Liu
,让我们进入正题.这个TOOL的名称叫Regular Expression Exploration. 你可以从这儿下载 .目前的版本是1.0 release. Rex是一个命令行工具,
具体用法可以在CMD下执行便可以看到用法,这个是.net的程序.我们可以引用它,然后用下面的Code来生成我们想要的字符串数组.
复制代码 代码如下:
/// <summary>
/// Generates the test.
/// </summary>
/// <remarks>Author Petter Liu http://wintersun.cnblogs.com </remarks>
[Test]
public void GenerateTest()
{
string regex = @"^1(3[4-9]|5[012789]|8[78])\d{8}$";
RexSettings settings = new RexSettings(regex) { k = 10, encoding = CharacterEncoding.ASCII};
var results = RexEngine.GenerateMembers(settings);
foreach (var result in results)
{
Console.WriteLine(result);
}
}
输出:
18897190518
18889349691
18792280668
18831202949
15789824598
15998890392
13709912389
18779992048
13967892889
15928882992
这里我们使用的是手机号码的正则表达式.设置生成数是10,编码ASCII.还有很多选项.可以看它的成员.这些字符串数据用来做什么就看你的了.
Author: Petter Liu