6 个版本
0.2.3 | 2024年4月20日 |
---|---|
0.2.2 | 2023年1月31日 |
0.2.1 | 2022年7月22日 |
0.1.1 | 2022年3月5日 |
0.1.0 | 2022年2月9日 |
#412 在 算法
33 每月下载次数
在 biodiff 中使用
43KB
981 行
Hexagex
Hexagexes 是使用十六进制和位进行二进制数据匹配的正则表达式。
语法与 regex crate 中的语法基本相同,但已将文字替换
0
-9
、a
-f
:解释为基16数字的4位序列.
:4位通配符O
、I
:对应于0和1的1位值_
:1位通配符^
、$
:这些匹配文本的开始和结束,而不是行的开始和结束\t
:这是一个转义符,用于将紧跟其后的内容解释为一个非 hexagex 正则表达式
可以使用 cargo build
编译 hexagex 二进制文件,允许使用 hexagex [exp] [file]
找到匹配项。
示例
01020304
:匹配字节数组 [1, 2, 3, 4]([2-7].){5,}00
:匹配长度至少为5的字节,从0x20
到0x7f
,并以空终止符结束I_I_I_I_|_O_O_O_O
:匹配所有偶数位都设置或奇数位都未设置的字节[0-69CEF][6-F]|[0EF]0|[23EF]2|[0-37-F]3|[018ACDEF]4|D[67]|(.1|[78AD]I___|[0-69CEF]5|[2-79]4|[4-8A-D][02]|[78A][67]|92)..|(B[4-F]|[01]2|[1239]0|[456]3|[78D]5)....
:匹配8051指令
依赖项
~2.2–3MB
~54K SLoC