java - 使用正则表达式生成字符串而不是匹配它们

标签 java regex

我正在编写一个 Java 实用程序,它可以帮助我生成大量数据以进行性能测试。能够为字符串指定正则表达式以便我的生成器吐出与此匹配的内容,这将是真的很酷。

有什么东西已经出炉了,我可以用它来做这件事吗?或者有没有一个图书馆可以让我大部分时间到达那里?

最佳答案

编辑:

关于这个问题的建议库的完整列表:

  1. Xeger * - Java
  2. Generex * - Java
  3. Rgxgen - Java
  4. rxrdg - C#

* - 取决于 dk.brics.automaton

编辑: 正如评论中提到的,谷歌代码中有一个库可以实现这一点: https://code.google.com/archive/p/xeger/

另见 https://github.com/mifmif/Generex根据 Mifmif 的建议

原文:

首先,使用足够复杂的正则表达式,我相信这是不可能的。但是你应该能够为简单的正则表达式组合一些东西。

如果您查看类 java.util.regex.Pattern 的源代码,您会发现它使用 Node 实例的内部表示。每个不同的模式组件都有自己的 Node 子类实现。这些节点被组织成一棵树。

通过生成遍历这棵树的访问者,您应该能够调用重载的生成器方法或某种将某些东西拼凑在一起的生成器。

关于java - 使用正则表达式生成字符串而不是匹配它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22115/

相关文章:

java - 单一生产者单一消费者现在我需要多个消费者

java - 扫描仪 nextInt() 和 hasNextInt() 问题

Java - MongoDB 不区分大小写,不检查完全匹配

javascript - 检查 javascript 数组中的正则表达式字符串匹配

java - 将 xml 文档中出现的特殊字符(如 – 和 —)替换为相应的代码(如 等)

javascript - 如何使用正则表达式来测试具有特殊字符的文件名

java - 正则表达式匹配其中包含特殊字符的文本

java - 与同一实体的一对多关系

java - Spring mcvc 应用程序中未选取 Log4j2 属性

java - 准备好的语句对java性能的影响