regex - 查找正则表达式的所有匹配字符串(不带 + 和 * 运算符)

标签 regex

我想枚举正则表达式匹配的所有可能的字符串。
我想匹配的所有正则表达式都没有 *+只有类似 x*{5}相当于 x?x?x?x?x? .

所以给定任何像下面这样的正则表达式:

[a-c]?cdr*{0,2}

我想要所有匹配表达式的字符串。因此,库或程序应输出如下内容:
cd, acd, bcd, ccd, cdr, acdr, bcdr, ccdr, cdrr, acdrr, bcdrr, ccdrr

只要它在 linux 中运行,我不关心它实现的语言。

细化:如果正则表达式转换为确定性有限自动机,则该自动机必须可表示为有向无环图。这就是为什么可能的输出字符串必须是可枚举的(不是无限长的字符串)。

最佳答案

我认为这个 Java 库会帮助你解决这个问题 http://code.google.com/p/xeger/因为它是 Java,所以它也可以在 Linux 上运行。

关于regex - 查找正则表达式的所有匹配字符串(不带 + 和 * 运算符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8120817/

相关文章:

javascript - 如何在javascript中不匹配某个正则表达式?

python - 正则表达式最佳实践 : is it ok to use regex to match multiple phrases?

javascript - 正则表达式匹配数字中的第二个点

Javascript-正则表达式

regex - 字符前未转义的反斜杠的正确正则表达式是什么?

JavaScript 哈希标签解析函数

java - 正则表达式 : Insert space in the string after a matched pattern

python - 在 Python 中格式化正则表达式

python - 另一个正则表达式问题

javascript - 正则表达式从三个选项之一开始