博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
byte[]数组的正则表达式搜索 z
阅读量:7066 次
发布时间:2019-06-28

本文共 933 字,大约阅读时间需要 3 分钟。

在byte[]数组的特定位置进行正则表达式匹配。

为了从硬盘上搜索特定类型的文件,需要根据文件的特征值进行匹配。

对于已掌握文件结构的文件,采用hard-code的方式进行匹配;这样速度快;

对于未掌握文件结构的文件,根据文件的特征数据,使用正则表达式进行匹配。缺点是匹配速度慢。但是相对于阅读或破解每种文件的数据结构,可以节约开发时间。

由于C#中的正则表达式引擎仅提供了对字符串的正则匹配,而我们从硬盘上读取的数据是byte[]类型,所以需要添加对byte[]数据进行正则匹配的支持。

另外,文件的特征值应(否则就很难称之为“特征”了)出现在固定的位置,所有要指定在特定位置进行正则匹配。

using System.Text.RegularExpressions;        //byte[]数组Grep搜索,确定在指定offset处是否匹配正则表达式字符串//buffer:要搜索的byte[]数组//regex:要匹配的正则表达式字符串//offset:buffer数组的偏移        public static bool BinaryRegex(byte[] buffer, string regex,int offset)        {            List
charList = new List
(); foreach (byte b in buffer) { charList.Add((char)b); } string bString = new String(charList.ToArray()); Match match = Regex.Match(bString,regex); if (match.Success && match.Index == offset) return true; else return false; }

 

转载地址:http://kxxll.baihongyu.com/

你可能感兴趣的文章
免费的协作和协同办公软件平台onlyoffice轻松部署
查看>>
WiFi覆盖下的生活 享受便利的同时 别忘记了安全
查看>>
关于ios 8 7 下的模态窗口大小的控制 代碼+場景(mainstoryboard)( Resizing UIModalPresentationFormSheet )...
查看>>
Linux软件包的管理--YUM
查看>>
Axis2发布webservice(1)--0配置发布
查看>>
Java Web笔记 – Servlet中的Filter过滤器的介绍和使用 编写过滤器
查看>>
我奋斗了18年,不是为了和你一起喝咖啡
查看>>
gearman简单介绍
查看>>
《Typecript 入门教程》 3、接口
查看>>
jsp的几种跳转比较
查看>>
用oracle查询当前数据库中的所有表
查看>>
决心书
查看>>
git 从版本控制中删除文件及.gitignore的用法
查看>>
cacti安装
查看>>
Spark核心概念
查看>>
Kali***(二)之被动信息收集——搜索引擎
查看>>
组策略参考文档1-共享打印机
查看>>
Linux的包管理工具介绍
查看>>
程序员如何成为架构师
查看>>
fiddler抓包之关于connect连接
查看>>