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'abababcde
true
-
rxp 测试'(a|b)*cde'ohno
false
如果您在测试表达式时添加了 --dfa
标志,则它将在测试之前编译成 DFA,这具有不同的性能特征。
依赖项
约 7.5MB
约 130K SLoC