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

使用VSCode regex,匹配并删除多行

  •  1
  • TheNovice  · 技术社区  · 6 年前

    我有一个巨大的文本文档(使用VS代码),它看起来像这样,并且以相同的模式持续几千行。本质上,我们有一个整数,一个浮点数,总是从0.00开始,然后是四个空行:

    468653564
    0.0013348548
    
    
    
    
    160919876
    0.0015948548
    
    
    
    
    239109587
    0.0010948548
    
    
    
    
    190959199
    0.0023948548
    
    
    
    
    163220290
    0.001348548
    

    468653564
    160919876
    239109587
    190959199
    163220290
    

    这种模式在第一步似乎很有效 (0.00.*) 还有这个 ^$\n

    3 回复  |  直到 6 年前
        1
  •  2
  •   l'L'l    6 年前

    要一次性处理多个regex模式,只需包含一个“or”语句( |

    0\.00.*\n|^$\n
    

    所以这实际上是说找0.00。。。 空行。

    \d (不特定于哪个数字)后跟一个句点,然后再加上其他数字,因为它需要较少的步骤:

    ^(\n|\d\.\d+\n)
    
        2
  •  1
  •   CertainPerformance    6 年前

    一种可能性是

    ^(?!\d{2}).*\n
    

    并替换为空字符串。它匹配所有不以2位数字开头的行。

        3
  •  1
  •   Kenneth K.    6 年前

    您可以选择搜索换行符:

    0\.00\d+(\r?\n)*
    

    星号将组修改为“零或更多”。这将匹配数据末尾缺少的换行符以及要删除的换行符。这个 \r 标记为可选只是为了说明Unix样式与Windows样式的差异。模式的其余部分与所写的基本相同:找到一个0,后跟一个小数点,后跟一个双0,后跟一个或多个( +