【问题标题】:Regex: select line by prefix and erase/replace with Sublime Text 2正则表达式:按前缀选择行并用 Sublime Text 2 擦除/替换
【发布时间】:2013-09-14 10:48:57
【问题描述】:

我有一个如下的文本文件:

FRAME 589
0 99 267 151 343
15 717 218 759 318
20 81 312 118 367
FRAME 590
0 99 267 150 343
15 725 218 765 317
20 80 311 115 367
FRAME 591
0 112 267 144 343
15 729 218 769 316
20 79 311 115 367
21 110 272 111 290

使用Sublime Text,我想:

  1. 删除不以 15 开头的行(此值映射一个 ID)。
  2. 将 ID 15 替换为 1(不编辑第一个空格后的其他值)。

如何执行这些操作?

【问题讨论】:

    标签: regex sublimetext2


    【解决方案1】:

    删除不以 15 开头的行(此值映射一个 ID)

    您可以使用以下正则表达式匹配所有不以15 开头的行:

    ^(?!15|FRAME).*(?:\r?\n|\r|$)
    

    然后使用空字符串""作为替换字符串来删除那些行。

    将 ID 15 替换为 1(不编辑第一个空格后的其他值)。

    使用以下正则表达式匹配行首的 15:

    ^15
    

    现在使用简单的1 替换字符串,这将用1 替换每行开头的所有15

    【讨论】:

    • 对于^(?!15).*(?:\r?\n|\r|$),我还选择了以FRAME 开头的字符串。我想排除它们。
    • @vdenotaris 我已经稍微编辑了我的答案,请检查编辑。您只需要稍微修改一下正则表达式^(?!15|FRAME).*(?:\r?\n|\r|$)
    猜你喜欢
    • 2013-07-31
    • 2015-05-25
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2021-07-01
    相关资源
    最近更新 更多