添加空格/拆分字符对

时间:2011-09-20 06:05:06

标签: regex notepad++

如何在每对字符之间添加空格/拆分。

eg 0x5C8934A3   -->  0x 5C 89 34 A3

我可以使用一个宏,但由于字符串的大小,它只需花费很长时间就可以设置它。

我所知道的是如何找到使用。但我不能让替换工作正常请告诉我如何预先形成这个。

[0][x][0-9A-F]+    
match 
0x5C8934A3

3 个答案:

答案 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