我的应用程序有一个功能,使用正则表达式解析文本以提取特殊值.我发现自己也需要创建遵循相同格式的字符串.有没有办法使用已定义的正则表达式来创建这些字符串?
例如,假设我的正则表达式看起来像这样:
public static Regex MyRegex = new Regex( @"sometext_(?<group1>\d*)" );
Run Code Online (Sandbox Code Playgroud)
我希望能够用来MyRegex创建一个新的字符串,如:
var created = MyRegex.ToString( new Dictionary<string, string>() {{ "group1", "data1" }};
Run Code Online (Sandbox Code Playgroud)
created那么那将具有值"sometextdata1".
更新:从下面的一些答案来看,我没有说清楚.我不想生成符合条件的随机字符串,我希望能够创建符合条件的特定字符串.在上面的例子中,我提供了"data1"来填充"group1".基本上,我有一个正则表达式,我想以类似于格式字符串的方式使用,而不是定义一个单独的格式字符串.
您需要一个名为 Rex 的工具。好吧,你不需要它,但这是我用的:-)
http://research.microsoft.com/en-us/projects/rex/
您可以(尽管并不理想)将 exe 添加为项目的引用并利用已公开的类。
它运作得很好。