【问题标题】:Replace Rows in Notepad++替换记事本++中的行
【发布时间】:2016-07-22 16:40:00
【问题描述】:

我想转换这样的东西:

bitte
----------

dream
----------


----------

HD
----------

ready
----------

变成这样的东西:

bitte:dream
HD:ready

使用正则表达式。使用什么正则表达式?如何将所有这些行放在一起?

【问题讨论】:

    标签: regex notepad++


    【解决方案1】:

    你可以使用像这样的正则表达式

    ^(?:---+\R\s*)*(\w.*)\R---+\R(?:\h*\R)*(\w.*)\R---+$
    

    并替换为$1:$2

    ^ 匹配行开头,(?:---+\R\s*)* 匹配第一个非空行之前的可选分隔符行,(\w.*) 是第 1 组,捕获一个单词 char,后跟 0+ 个字符而不是换行符,\R---+\R匹配后跟 3+ 个连字符和一个换行符的换行符,(?:\h*\R)* 匹配 n 个空行,(\w.*)(见上文),\R---+$ 匹配行尾的换行符和 3+ 个连字符。

    【讨论】:

    • 为什么不用-{3,} 而不是---+
    • 我发现---+ 是一个更易读的子模式。实际上,如果它是固定的,它可以被 OP 替换为-{n} 与连字符的确切数量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2017-08-09
    • 2019-02-04
    • 2016-05-21
    • 2016-10-07
    相关资源
    最近更新 更多