notepad++下用正则插入空格

1 前言

正则表达式是一种字符串匹配的模式,有一些规定语法。本文假设渎职已经了解一些基本的正则语法。
在此基础上,本文主要介绍如何利用 notepad++ 支持的正则语法实现在指定位置插入空格。

2 问题

我在处理网络数据包时,从中提取出一段十六进制格式的字符串,如下:

0026160000d2000c2950a9fc080045000029000040004011b904c0a80065c0a8000ac2f113e6001574a8010000000002000d0100007530

为了方便后续处理,我需要在每两个字符之间插入一个空格,效果如下:

00 26 16 00 00 d2 00 0c 29 50 a9 fc 08 00 45 00 00 29 00 00 40 00 40 11 b9 04 c0 a8 00 65 c0 a8 00 0a c2 f1 13 e6 00 15 74 a8 01 00 00 00 00 02 00 0d 01 00 00 75 30

3 实现方法

在这里我使用 notepad++ 来实现这个空格插入
notepad++ 支持使用正则查找和替换(尝试过 vscode,vscode 好像只支持正则查找,替换中并不识别正则)

  1. 首先匹配中两个字符
(\S{2})
(((\d)|[a-f]|[A-F]){2})
(((\d)|[a-f]|[A-F])((\d)|[a-f]|[A-F]) )
(((\d)|[a-f]|[A-F]){2})
  1. 在匹配中的两个字符后面追加空格
($1 )  //$1 表示第一个括号中匹中的字符,括号可有可无

温馨提示 : 匹配的正则表达式一定要加括号,如果不加括号,$1 只表示匹配中的两个字符中的第一个字符,即使我加上 $2 也总是不成功,可以自行尝试,成功了给我分享一下

//后来尝试发现,这样也行
([0-9]|[a-f]|[A-F])([0-9]|[a-f]|[A-F])
($1$2 )
  1. 总结
    看来,括号一定要慎用,括号对应的是 $ 变量,当括号不包含括号时,括号从前往后数依次对应 $1 $2 $3 ... 当括号包含括号时,待补充......

4 结语

本人才疏学浅,若有不当之处,还请多多指教

你可能感兴趣的:(notepad++下用正则插入空格)