c byte 陣列的正規表示式搜尋

2022-04-15 16:16:17 字數 917 閱讀 4571

在byte陣列的特定位置進行正規表示式匹配。

為了從硬碟上搜尋特定型別的檔案,需要根據檔案的特徵值進行匹配。

對於已掌握檔案結構的檔案,採用hard-code的方式進行匹配;這樣速度快;

對於未掌握檔案結構的檔案,根據檔案的特徵資料,使用正規表示式進行匹配。缺點是匹配速度慢。但是相對於閱讀或破解每種檔案的資料結構,可以節約開發時間。

由於c#中的正規表示式引擎僅提供了對字串的正則匹配,而我們從硬碟上讀取的資料是byte型別,所以需要新增對byte資料進行正則匹配的支援。

另外,檔案的特徵值應(否則就很難稱之為「特徵」了)出現在固定的位置,所有要指定在特定位置進行正則匹配。

1

using

system.text.regularexpressions; 23

//byte陣列grep搜尋,確定在指定offset處是否匹配正規表示式字串4//

buffer:要搜尋的byte陣列5//

regex:要匹配的正規表示式字串6//

offset:buffer陣列的偏移

7public

static

bool binaryregex(byte buffer, string regex,int

offset)814

string bstring = new

string(charlist.toarray());

15 match match =regex.match(bstring,regex);

16if (match.success && match.index ==offset)

17return

true;18

else

return

false

;19 }

grep 正規表示式搜尋

下面總結一下平時工作中用到的正規表示式。grep options pattern file a 不要忽略二進位制資料 c 計算符合樣式的列數 d 動作 當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep指令將回報資訊並停止動作。e 範本樣式 指定字串做為查詢檔案內容的樣式 e 將樣式為延...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

php 正規表示式 陣列

正規表示式 斜槓代表定界符 str 好厲害18653378660了hi請勿嫁得好15165339515安徽dah矮冬瓜 拍行業大概啊好廣東也欺負偶怕哈 reg 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼正規表示式 echo...