regex - 如何组合正则表达式中的行?

标签 regex sublimetext

所以我是正则表达式的新手,我只使用一个简单的文本编辑器来学习它们。我有以下文件

          84544484N
          32343545M
          32334546E
          34456434M

我试图将每一对线组合成一个制表符分隔的线
结果应该是:
        84544484N  32343545M
        32334546E  34456434M

我写了以下内容:
            Search: (.*?)\n(.*?)
            Replace: \1\t\2

这不起作用有人可以解释原因并给我正确的解决方案。谢谢!!

最佳答案

(.*?)\n(.*?)模式永远不会很好用,因为 (.*?)在模式的末尾将始终返回一个空字符串(因为 *? 是一个惰性匹配量词,如果它可以返回零个字符(它可以)它会。使用贪婪匹配并调整模式,如:

(.+)\r?\n *(.*)

或者 - 因为 SublimeText 使用 Boost regex - 你可以用 \R 匹配任何换行序列:
(.+)\R *(.*)

并替换为 \1\t\2 .注意我替换了 *?+在第一个捕获组中,因为您需要匹配非空行。

正则表达式分割:
  • (.+) - 除换行符外的一个或多个字符(尽可能多),最多为
  • \R - 换行序列( \r\n , \r 或只是 \n )
  • * - 文字空间,零次或多次出现
  • (.*) - 第 2 组:除换行符以外的零个或多个字符(尽可能多)

  • enter image description here
    /
    enter image description here

    关于regex - 如何组合正则表达式中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35565990/

    相关文章:

    regex - XSLT 2.0 正则表达式替换

    Java正则表达式替换一个接一个的单词

    haskell - 为什么如果我添加空格,这个 Haskell 代码就会变得无效?

    search - Sublime Text 3 : I can't search a string with a dollar followed by underscore ($_GET, $ _POST等)

    sublimetext3 - 在 Sublime Text 3 中自动将缩进从 2 个空格转换为 4 个空格

    regex - 使用 R 查找字符串中的重复模式

    java - 在 Java 中分割字符串,但将分隔符保留在每个新字符串中

    java - 从十进制字符串中删除前导零

    sublimetext2 - 在 Sublime Text 2 中更改配色方案的键盘快捷键?

    sublimetext2 - 同步升华的不同用户设置