2 个不稳定版本
| 0.2.0 | 2022 年 4 月 14 日 |
|---|---|
| 0.1.1 | 2022 年 4 月 9 日 |
| 0.1.0 |
|
2384 在 命令行工具 中
1,420 每月下载次数
185KB
1.5K SLoC
rxp
Rxp (Regex explorer) 是一个用于可视化测试简单正则表达式的命令行工具。它有两个子命令,dot 和 test。
rxp dot<阶段> <正则表达式>
rxp dot 接受一个简单的正则表达式作为文本输入,并在编译的不同阶段输出正则表达式的各种抽象表示。输出格式是 GraphViz dot 语言,可以用 dot(1) 工具 进行可视化。
输出格式
rxp dot tokens <regex>:以标记流的形式输出正则表达式。rxp dot ast <regex>:以抽象语法树的形式输出正则表达式。rxp dot nfa <regex>:以 NFA(非确定有限自动机)的形式输出正则表达式。rxp dot dfa <regex>:以 DFA(确定有限自动机)的形式输出正则表达式。
示例
-
rxp dot tokens '(a|b)*cde' | dot -Tpng > tokens_example.png:
-
rxp dot ast '(a|b)*cde' | dot -Tpng > ast_example.png:
-
rxp dot nfa '(a|b)*cde' | dot -Tpng > nfa_example.png:
被标记为 ε的箭头是 ε 转换,或自动机可以在不消耗任何输入的情况下进行的转换。带有任何其他 Unicode 图形簇的箭头是自动机通过消耗输入的单个元素进行的转换。如果测试字符串是希腊语,这可能会让人困惑。抱歉! -
rxp dot dfa '(a|b)*cde' | dot -Tpng > dfa_example.png:
rxp 测试<正则表达式> <测试-字符串>
rxp 测试 接受一个简单的正则表达式和一个测试字符串,以评估该正则表达式。如果测试字符串与正则表达式匹配,它将打印 true,如果不匹配则打印 false。
示例
-
rxp 测试'(a|b)*cde'abababcdetrue -
rxp 测试'(a|b)*cde'ohnofalse
如果您在测试表达式时添加了 --dfa 标志,则它将在测试之前编译成 DFA,这具有不同的性能特征。
依赖项
约 7.5MB
约 130K SLoC