delphi正则如何实现我的问题

keeley20 2016-08-12 05:16:35
各位好:
如下图1是一张图片的开头部分,图2 是该图片的结尾,现在图片中不固定位置被插入了一些字符,我想通过正则匹配到这些字符,应该怎么实现?


我现在想到的方法,直接把文件加载到tstringlist,然后正则匹配该stringlist.text,发现是不可行的,因为图片中有00字符,在字符串中00表示结束了。
begin
reg := TPerlRegEx.Create;
reg.Options:=[preCaseLess]; //正则忽略大小写
ts.Clear; //tstringlist
ts.LoadFromFile(vFile);//载入当前目标文件
if Length(ts.Text)>0 then
begin
reg.Subject := ts.Text;
for iReg := 0 to RegExST.Count-1 do
begin
reg.RegEx := RegExST[iReg];
if reg.Match then //ShowMessage(reg.MatchedText+'+'+inttostr(reg.MatchedOffset)+'+'+inttostr(reg.MatchedLength));
begin
Result:=True;
Break;
end;
end;
end;
FreeAndNil(reg);


有劳各位大牛指点迷津,多谢!
...全文
192 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovedeadyou 2019-05-16
  • 打赏
  • 举报
回复
引用 1 楼 pathletboy 的回复:
正则只适合文本数据,不适合二进制数据。 try this http://stackoverflow.com/questions/8741449/how-to-search-a-hex-in-stream
说 的 不对,那为什么 D:\破解相关\修改_调试_监控\修改查看类\Hex Editor Neo\HexFrame.exe 这款软件就支持呢?
keeley20 2016-08-19
  • 打赏
  • 举报
回复
谢谢二位的回复
lyhoo163 2016-08-16
  • 打赏
  • 举报
回复
读入二进制数据,转成字符串。再搜索。
keeley20 2016-08-15
  • 打赏
  • 举报
回复
哪位能指点指点
pathletboy 2016-08-15
  • 打赏
  • 举报
回复
正则只适合文本数据,不适合二进制数据。 try this http://stackoverflow.com/questions/8741449/how-to-search-a-hex-in-stream
keeley20 2016-08-12
  • 打赏
  • 举报
回复
补充一下,图2中的test@qq.com 和后面的网址就是我想匹配的。

16,746

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧