我希望你一切都好。
我正在嘗試制作一個正則運算式來匹配訊息中的十六進制字串。
有時十六進制字串是正常的,總是格式為 0x 40 十六進制字符,如下所示:0x0D6185e7481968D82B51F07191F8dAa721b2Db10。
但有時,其中有一些空格:0x0 D6185 e7481968D82B51F07191F8 dAa721b2Db10
有時,這個十六進制字串嵌入到訊息中,所以我不能使用基本運算式/([a-fA-F0-9x]{3,})/gm,因為在下面的例子中
access
0x0D 6185e7481968 D82B51F07191F8d Aa721b2Db10
acce當我嘗試重建十六進制字串時,也會選擇該部分。
通常十六進制字串僅在一行上,但有時在兩行或多行上,如下所示:
access
0x0D6185e7481968
D82B51F07191F8d
Aa721b2Db10
我不知道如何解決這個問題,所以如果有人可以幫助我,我將不勝感激。
謝謝閱讀,
馬特奧
uj5u.com熱心網友回復:
您可以使用
/0x(?:\s*[a-fA-F0-9]){40}/g
請參閱正則運算式演示。
詳情:
0x-0x固定字串(?:\s*[a-fA-F0-9]){40}- 四十次重復零個或多個空格,然后是一個十六進制字符。
查看 JavaScript 演示:
const text = "0x0D6185e7481968D82B51F07191F8dAa721b2Db10\nBut sometimes, there is some spaces within it : 0x0 D6185 e7481968D82B51F07191F8 dAa721b2Db10\n\naccess\n0x0D6185e7481968 \nD82B51F07191F8d\nAa721b2Db10";
const regex = /0x(?:\s*[a-fA-F0-9]){40}/g;
console.log( text.match(regex) )
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/512199.html
標籤:正则表达式解析十六进制
