代码之家  ›  专栏  ›  技术社区  ›  gsxr1300

将文件中的每n个换行符替换为制表符

  •  3
  • gsxr1300  · 技术社区  · 10 年前

    是否可以用正则表达式搜索/替换替换UE或NPP中每4行的制表符?

    文件之前:

        #12
        ab
        cde
        ef
        #34
        ghij
        ijk
        kl
        #5678
        uv
        w
        xyz
    ...
    

    应在更换后

    #12 ^t ab ^t cde ^t ef
    #34 ^t ghij  ^t ijk ^t kl
    #5678 ^t uv ^t w  ^t xyz
    
    2 回复  |  直到 10 年前
        1
  •  5
  •   Toto    10 年前

    以下是一种完成工作的方法:

    查找内容: (.+)\R(.+)\R(.+)\R(.+\R)?
    替换为: $1\t$2\t$3\t$4

    检查 Regular Expression
    不要检查 dot matches newline
    然后单击 Replace All .

    说明:

    (.+)\R   : Capture in group 1 everything until a line break (excluded)
    (.+)\R   : Capture in group 2 everything until a line break (excluded)
    (.+)\R   : Capture in group 3 everything until a line break (excluded)
    (.+\R)?  : Capture in group 4 everything until a line break (included), optional
    

    \R 表示任何类型的换行符(即。 \r \n \r\n )

        2
  •  2
  •   Tensibai    10 年前

    [\n\r](?!#) 会的 并替换为 \t

    使用windows编码时,如果后面没有#by标签,它将替换crlf。 (?!#) 是一个负向前看,它排除任何\n或\r后跟#(在下一行)

    请注意,它会在制表符之前留下一个空格,如果您确实希望每个字段之间只有制表符,则可能需要将编码更改为只有\n或\r(linux或mac)。