【问题标题】:Regular Expression in Notepad++, open and close braces for each lineNotepad ++中的正则表达式,每行的打开和关闭大括号
【发布时间】:2014-08-20 16:30:21
【问题描述】:

如何使用 Notepad++ 为每一行添加左括号和右括号

我试图找到带有这个表达式的行:(.+)

然后我替换为(\1)。当我尝试将其替换为 '\1'

时,它适用于单引号

但是对于(),它不起作用。

谢谢

【问题讨论】:

    标签: regex notepad++


    【解决方案1】:

    您也必须转义替换字符串中的括号:

    所以将^(.+)$ 替换为\(\1\)

    括号是Notepad++专用的,AdrianHHH找到了解释:
    它使用 boost regex 风格,它使用以下语法替换字符串:Boost-Extended Format String Syntax

    【讨论】:

    • +1,这很奇怪,括号在替换部分不应该是特殊的!!!
    • @M42 查看我的答案和链接的答案。
    【解决方案2】:

    正则表达式中的+ 表示上一项或多项. 表示任何字符。您应该使用表达式^(.*)$,其中* 表示前一项的零个或多个。我喜欢将^$ 添加到表达式中,以明确我想要行的开头和结尾,尽管在这种情况下它们是不必要的。

    替换文本应该(如其他答案所示但未解释)圆括号已转义。替换应该是\(\1\)。 (刚刚在 Notepad++ 6.6.7 中检查,之前在此答案中所述的双圆括号 ((\1)) 不起作用。替换字符串中的大括号必须是 \(\)。)

    Notepad++ 替换表达式可能很复杂,圆括号引入了变化。请参阅 Multiple word search and replace in notepad++ 获取一个示例和更多文档的链接。

    【讨论】:

    • 也许他不想用()替换空行
    • 我认为这实际上对 OP 没有帮助。它所做的只是捕获空行,它可能仍然不会添加到括号中
    • 问题题的第一句明确指出“for every line”。
    • 感谢您的解释,+1。
    猜你喜欢
    • 2021-03-12
    • 2022-01-17
    • 2012-12-03
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    相关资源
    最近更新 更多