![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 請問正則表示式(regular expression)能做到這樣嗎?
(https://www.pcdvd.com.tw/showthread.php?t=971492)
|
---|
請問正則表示式(regular expression)能做到這樣嗎?
0x00 0x00 0x08 0x00 0x02 0x00 0x04 0x00 0x02 0xFF 0x00 0xFF 0x02 0x07 0x88 0x02 0x09
希望每隔3個0x字串就換行,也就是以下這樣 請問正則表示可以做得到嗎?或者是有沒有其他方法能夠達到這個目的 0x00 0x00 0x08 0x00 0x02 0x00 0x04 0x00 0x02 0xFF 0x00 0xFF 0x02 0x07 0x88 0x02 0x09 |
硬要用的話可以像這樣
perl -e 'print join("\n","0x00 0x00 0x08 0x00 0x02 0x00 0x04 0x00 0x02 0xFF 0x00 0xFF 0x02 0x07 0x88 0x02 0x09" =~ /(0x\S+\s+0x\S+\s+0x\S+\s+|.+$)/g)'; |
引用:
請問這個要怎麼用啊,ulteredit可以嗎?還是說用其他工具? 之所以上來請教大家是因為我手邊有幾千的0x字串,要我手動每三個字串按一次enter會要我的命的 :cry: |
ultraedit 試試:
match case 取消 regular expression engine 選 perl search: (0x[0-9a-f]{2} 0x[0-9a-f]{2} 0x[0-9a-f]{2} ) replace: \1\n |
引用:
若我來做的話, 在命令列模式下寫WSH (windows script host) 或者用ExcelVBA 逐個位元讀取檔案, 每隔固定長度就添加 0d0a換行字元 輸出到另一個檔案, 結束. |
樓主應該是要編輯檔案,要做重覆性的動作
1. 安裝PSPad(免費軟體) 2. 錄製動作巨集 3. 連續執行巨集 |
引用:
黑天使大哥,謝謝,這個可以:like: 引用:
引用:
兩位大哥,謝謝你們分享經驗,我明天搞定客戶後會來研究一下 我目前抓不到頭緒 :laugh: |
echo '0x00 0x00 0x08 0x00 0x02 0x00 0x04 0x00 0x02 0xFF 0x00 0xFF 0x02 0x07 0x88 0x02 0x09' | sed -e 's/0x\(..\) 0x\(..\) 0x\(..\) /0x\1 0x\2 0x\3 \n/g'
Linux 是你的好朋友... (茶) |
用 vim 的話,在 normal mode
:set fo+=a :set tw=14 {v}gq |
再請教另兩個問題
問題一: ![]() 若是如圖先用ultraedit先行框選一個直行的範圍後 是否能利用regular express 把該框選範圍的所有第一個3取代為0x3 for example ;Lens correction 0x02,33e0 f3 0x02,33e6 f5 0x02,33e7 f4 0x02,33e8 f0 0x02,33e9 f6 0x02,33ea f2 0x02,33eb f7 0x02,33ec f2 0x02,33ed f4 0x02,33ee f0 0x02,33ef f6 0x02,33e0 f6 0x02,33e1 f7 0x02,33e2 f2 0x02,33e3 f4 0x02,33e4 f0 0x02,33e5 f6 0x02,33e6 f8 0x02,33e7 f7 0x02,33e8 f2 -------> ;Lens correction 0x02,0x33e0 f3 0x02,0x33e6 f5 0x02,0x33e7 f4 0x02,0x33e8 f0 0x02,0x33e9 f6 0x02,0x33ea f2 0x02,0x33eb f7 0x02,0x33ec f2 0x02,0x33ed f4 0x02,0x33ee f0 0x02,0x33ef f6 0x02,0x33e0 f6 0x02,0x33e1 f7 0x02,0x33e2 f2 0x02,0x33e3 f4 0x02,0x33e4 f0 0x02,0x33e5 f6 0x02,0x33e6 f8 0x02,0x33e7 f7 0x02,0x33e8 f2 問題二: 可否將每列的尾端最後一個半形數字文字或英文之後插入逗號 (若是尾端是空格會是tab或是全形字串等等則忽略,再往前比對) (1122334455(空格)(空格)(tab)(tab)---->1122334455,(空格)(空格)(tab)(tab)) for example 0x02,0x33e4 f0 0x02,0x33e5 f6 0x02,0x33e6 f8 0x02,0x33e7 f7 -----------> 0x02,0x33e4 f0, 0x02,0x33e5 f6, 0x02,0x33e6 f8, 0x02,0x33e7 f7, 0x02,0x33e8 f2, |
所有的時間均為GMT +8。 現在的時間是01:46 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。