regex2fat:基于 Rust 与 FAT32 技术的正则表达式 DFA 序列化工具

Turn your favourite regex into FAT32

分支1Tags0
文件最后提交记录最后更新时间
4 年前
6 年前
6 年前
6 年前
6 年前
6 年前

regex2fat

你是否曾经想要匹配一个正则表达式,但手头只有fat32驱动器?是否想将你的正则表达式确定性有限自动机(DFA)序列化为一种超过30亿设备广泛支持的格式?

目录循环是你的菜吗?

不必再烦恼,有了regex2fat,这一切变得前所未有地简单! 只需使用regex2fat '[YOUR] F{4}VOUR{1,7}E (R[^E]G)*EX HERE.' /dev/whatever,你就能得到一个你喜欢的正则表达式的fat32 DFA。 例如,要检查字符串'Y FFFFVOURRE EX HEREM'是否匹配,只需挂载它并查看'/Y/SPACE/F/F/F/F/V/O/U/R/R/E/SPACE/E/X/SPACE/H/E/R/E/M/MATCH'是否存在。

要运行它,你可以安装cargo,然后执行cargo install regex2fat(或者直接从这个仓库编译)。 如果你的路径中包含cargo二进制目录,你应该能够像上面描述的那样调用它。 创建的文件将是一个fat32映像,可能可以以某种方式挂载或放入驱动器中,但最好不要这样做。

常见问题

问:这个是怎么工作的?

答:常规正则表达式(即不支持回引用等高级特性)可以被转换为一个所谓的确定性有限自动机(DFA)。 这基本上是一堆状态之间的箭头,每个箭头标有一个字母,使得状态中的一个字母使得当前状态沿着箭头移动到另一个状态,其中一组状态是可接受的。 是的,我解释得不好,你如果不知道DFA是什么,最好阅读一下维基百科上的DFA文章。

因为我比较懒,我使用了BurntSushi/regex-automata来从正则表达式获取DFA。

尽管Fat32通常具有树状结构,但每个目录只是引用文件系统上任何位置的块,所以同一个块可以从多个目录引用。 目录也没有显式的父目录字段,因此可以省略..。 这允许在文件系统内部创建图形结构,而DFA本质上就是这样的结构。

问:我应该在生产环境的任何地方使用这个吗?

答:不,但我不能阻止你。

问:这真的有效吗?

答:我已在Windows 10和Linux上尝试过。 在我的测试中,它在Windows上似乎运行无懈可击。

在Linux上,fat32代码声称如果循环中(或类似情况)有两个具有相同目录名称和相同父目录的目录项,则目录无效,因此某些路径是被禁止的。

在某些嵌入式设备上尝试可能会很有趣。

问:NOOOOOOOOOOO!!! 你不能把DFA变成fat32文件系统!!!你不能有多个父目录的目录!!!你正在打破无循环假设NOOOOOOOOO

答:哈哈,操作系统驱动的正则表达式引擎,开动起来啦!

项目介绍

将您钟爱的正则表达式转化为FAT32格式。【此简介由AI生成】

定制我的领域
61.03 K13访问 GitHub