【问题标题】:Replace leading spaces with Notepad++用 Notepad++ 替换前导空格
【发布时间】:2012-09-14 02:42:32
【问题描述】:

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

zero
 one
  two
   three

进入:

zero
@one
@@two
@@@three

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

Notepad++ 可以做到这一点吗?我宁愿不必编写代码来执行此操作...

【问题讨论】:

    标签: regex notepad++


    【解决方案1】:

    正如蒂姆的回答所表明的,这不能在一次搜索/替换中完成,但是这里是您可以使用多个替换相当快速地完成相同任务的方法:

    查找:^( *)[ ]

    替换为:\1@

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

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

    【讨论】:

    • 谢谢!这就是我所需要的;我想我只是没有完全理解原帖的答案。
    • @Andrew Clark 我使用您的正则表达式替换大型文本文件中的前导空格,仅使用“”(一个空格)作为“替换为”字符。仅适用于这里发生的人:“全部替换”按钮可以正常工作,并且不需要多次点击。可能是在这篇文章发布 5 年后,这个功能后来被添加了 :-)(并且仍然非常有用)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2016-12-05
      • 1970-01-01
      • 2021-11-28
      • 2014-02-04
      • 2016-04-21
      • 2018-10-04
      • 2012-03-02
      • 1970-01-01
      相关资源
      最近更新 更多