如何在每对字符之间添加空格/拆分。
eg 0x5C8934A3 --> 0x 5C 89 34 A3
我可以使用一个宏,但由于字符串的大小,它只需花费很长时间就可以设置它。
我所知道的是如何找到使用。但我不能让替换工作正常请告诉我如何预先形成这个。
[0][x][0-9A-F]+
match
0x5C8934A3
答案 0 :(得分:19)
Notepad ++的正则表达式非常有限,所以你必须使用这样的东西:
搜索
(..)
并替换为
\1
(注意\1
之后有一个空格!)
(..)
表示找到两个字符并存储它们
\1
获取存储在第一个捕获组中的字符
这个简单解决方案的前提条件是只有这样的字符串而没有别的。然后它会在单词之后添加一个不需要的空格。如果不是这样,你可以在之后删除它。
答案 1 :(得分:1)
此正则表达式将返回两个非换行符(\n
)的组。
.{2}
如果您也想要匹配\n
,请使用字符范围[\s\S]
。
如果要明确匹配十六进制模式,可以使用...
^(0x)([\da-z]{2})+
(务必使用i
模式修饰符。)
您没有指定您的语言,但是您可以使用空格字符加入匹配项或使用$0
进行替换(或者保留整个匹配项的任何内容,例如JavaScript中的$&
)
答案 2 :(得分:1)
我这里没有安装Notepad ++,但在我的编辑器中,您可以搜索\B(?=(?:[0-9A-F]{2})+\b)
并用一个空格替换所有。
<强>解释强>
\B # only match within words
(?= # Assert that from the current position...
(?: # ...the following can be matched:
[0-9A-F]{2} # a succession of two hexadecimal digits
)+ # once or more,
\b # ending at a word boundary.
) # End of lookahead