用Notepad ++替换前导空格

时间:2012-09-21 16:35:19

标签: regex notepad++

我想使用Notepad ++替换一行中具有相同数量的给定字符的所有前导空格。例如,我想改变:

zero
 one
  two
   three

成:

zero
@one
@@two
@@@three

我没有成功地完成这项工作。我确实找到Regex to replace html whitespace and leading whitespace in notepad++,但无法得到我想要的结果。

Notepad ++有可能吗?我宁愿不用编写代码来做这件事......

2 个答案:

答案 0 :(得分:6)

正如蒂姆的回答所指出的,这不能在一次搜索/替换中完成,但是这里是如何使用多个替换来相当快速地完成相同的任务:

查找:^( *)[ ]

替换为:\1@

现在只需垃圾邮件“全部替换”按钮,直到它指示没有要替换的匹配项。这将在每次点击时替换每行开头的单个空格,因此它需要与最缩进的行相同的点击次数。

确保选择“正则表达式”作为搜索模式。

答案 1 :(得分:1)

您需要可变长度的lookbehind断言才能在单个正则表达式中执行此操作,而Notepad ++不支持这些。

为了记录,您可以在EditPadPro中搜索(?<=^ *)\s并替换为@