C#代码生成匹配正则表达式的字符串我使用正则表达式来验证用户输入。现在我可以配置正则表达式,这样它可以帮助用户查看有关如何格式化某些输入的示例。是否可以生成一些与任意正则表达式匹配的字符串?有没有可以在某处使用的实现?更新:由于许可证,我无法使用REX。还有其他的可能性吗?尝试使用这个应用程序Rex可以做到:)http://research.microsoft.com/en-us/projects/rex/对于java它是https://code.google.com/p/xeger/所以有很多正则表达式匹配生成器:)这个:https://github.com/moodmosaic/Fare它是c#中的xeger包装器一些解决方案(1)如果正则表达式是由您(而不是用户)编写的并且很少更改,为什么要以编程方式创建任何东西?您可以手动创建一些不错的示例。(2)使用现成的解决方案。(见其他答案)(3)拒绝抽样,解决所有随机生成问题的大锤:创建一个随机字符串并检查它是否与正则表达式匹配。如果没有,请重试。如果正则表达式非常具体,则此解决方案的性能非常糟糕。(4)实现一个解析器,将正则表达式转换为字符串,构成一棵由例如以下节点组成的树。每个节点都有一个遵循特定规则的CreateRandomString方法。创建随机字符串意味着调用根节点的方法。join:遍历所有子子树,将结果按顺序join。随机选择:随机选择一个子子树并遍历它。返回结果。乘法:在a和b之间创建一个随机数n。遍历子树n次并连接结果。leaf:返回一个常量字符串。创建解析器是棘手的部分:),尤其是对于嵌套结构。(我写了一个类似正则表达式的语法。)正如评论中指出的那样,Rex工具将执行此操作——使用Rex创建一个与您的模式相匹配的字符串:按如下方式运行rex.exe:rex.exe"your_regex_pattern_here"/k:your_required_examples_num_here关于此的更多信息:TheRex指南几乎可以肯定不是,不是。在您正在查看的上下文中,正则表达式通常用于检查字符串是否与给定模式匹配。如果您知道您的格式应该足够好以至于您正在为它编写一个正则表达式,那么您没有理由不能轻松地生成您自己的测试数据。[编辑-似乎有几个例子。但这确实忽略了一个事实,即为了测试您的正则表达式是否正确,您必须编写测试数据。所以你应该已经有了你的琴弦。】以上就是C#学习教程的全部内容:C#代码生成与正则表达式匹配字符串。不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
