#regex #regular #expression #utility #testing #command-line-tool #transition

bin+lib rxp

探索和测试简单正则表达式的命令行工具

2 个不稳定版本

0.2.0 2022 年 4 月 14 日
0.1.1 2022 年 4 月 9 日
0.1.0 2022 年 4 月 9 日

2384命令行工具

Download history 4/week @ 2024-03-14 15/week @ 2024-03-28 10/week @ 2024-04-04 10/week @ 2024-05-16 278/week @ 2024-05-23 605/week @ 2024-05-30 454/week @ 2024-06-06 291/week @ 2024-06-13 294/week @ 2024-06-20 247/week @ 2024-06-27

1,420 每月下载次数

MIT 许可证

185KB
1.5K SLoC

rxp

Rxp (Regex explorer) 是一个用于可视化测试简单正则表达式的命令行工具。它有两个子命令,dottest

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.pngrxp dot tokens 命令的示例

  • rxp dot ast '(a|b)*cde' | dot -Tpng > ast_example.png: rxp dot ast 命令示例

  • rxp dot nfa '(a|b)*cde' | dot -Tpng > nfa_example.png: rxp dot nfa 命令示例 被标记为 ε 的箭头是 ε 转换,或自动机可以在不消耗任何输入的情况下进行的转换。带有任何其他 Unicode 图形簇的箭头是自动机通过消耗输入的单个元素进行的转换。如果测试字符串是希腊语,这可能会让人困惑。抱歉!

  • rxp dot dfa '(a|b)*cde' | dot -Tpng > dfa_example.png: rxp dot dfa 命令示例

rxp 测试<正则表达式> <测试-字符串>

rxp 测试 接受一个简单的正则表达式和一个测试字符串,以评估该正则表达式。如果测试字符串与正则表达式匹配,它将打印 true,如果不匹配则打印 false

示例

  • rxp 测试'(a|b)*cde'abababcde

    true
    
  • rxp 测试'(a|b)*cde'ohno

    false
    

如果您在测试表达式时添加了 --dfa 标志,则它将在测试之前编译成 DFA,这具有不同的性能特征。

依赖项

约 7.5MB
约 130K SLoC