我有一個帶有十六進制表示數字的文本文件。這些數字是在16位塊分離或者通過space
或new line
這樣的:在兩個後續字符後放置空格[0-9] [A-F] [a-f]
1822 0000 da12
0030 0110 0030
我又希望他們的羣體,但在8位塊這樣的:
18 22 00 00 da 12
00 30 01 10 00 30
我用「崇高文本3「編輯器,支持正則表達式查找和替換。不幸的是,我的正則表達式知識很差。谷歌搜索也沒有幫助。
我有一個帶有十六進制表示數字的文本文件。這些數字是在16位塊分離或者通過space
或new line
這樣的:在兩個後續字符後放置空格[0-9] [A-F] [a-f]
1822 0000 da12
0030 0110 0030
我又希望他們的羣體,但在8位塊這樣的:
18 22 00 00 da 12
00 30 01 10 00 30
我用「崇高文本3「編輯器,支持正則表達式查找和替換。不幸的是,我的正則表達式知識很差。谷歌搜索也沒有幫助。
將([0-9a-f]{2})([0-9a-f]{2})
替換爲$1 $2
。
不同的正則表達式庫的工作方式稍有不同。我建議查看regex101.com,在那裏你可以嘗試各種正則表達式,並以清晰的方式查看結果。
這裏是一個可能的起點你:
find: ([0-9a-f][0-9a-f])([0-9a-f][0-9a-f]) (...
replace: \1 \2 \3 \4
取決於哪個regex庫編輯器的使用,替換可能是$ 1 $ 2 $ 3代替,或查找括號或括號可能需要轉義。
您可以使用積極的展望。將(\S{2})(?=\S)
替換爲\1
是的。但我對學習正則表達式很感興趣。所以我試圖理解這個表達。我的猜測是,$ 1指定了第一個由()和第二個分別包圍的組。你能否介紹一下正在發生的事情? – Hairi
這是正確的@Hairi。每個組恰好匹配兩個字符 - 由{2}設置,其中每個字符都是括號中的字符(可能的十六進制字符)中的一個。因此,崇高的正則表達式一直在飢餓地尋找第一場比賽,替換是否增加了空間,然後在文本中移動以尋找下一場比賽...... – Dogweather