繁体   English   中英

RegEx记事本++

[英]RegEx Notepad++

我有以下格式的一系列行:

               LINE:  5190 STNO:  22669  SI: VOICE
          CCT   LINE    STNO  SI    BUS TYPE
          003   6269                OPTI ONLY     
           MULTLINE 8. . . . . . . . . . . . . . .
           001 SUBUNIT . . . . . DIGITE MAIN      DEFIL/TRS
           (ALT_ROUT: N)       (OPTIIP  )
               LINE:  5291 STNO:  29956  SI: VOICE

我需要通过正则表达式(notepad ++)查找的是“ STNO:”后面的数字。

大约有100种这样的比赛。

我对STNO:\\ s + \\ d {4,5}感到厌倦,但这也使STNO进入了我不想要的比赛。 请帮忙。

我只需要保留匹配的结果,其余的我要删除匹配的项目或将匹配的项目复制到新文件中,以较容易的为准。

我建议采用两步法。 首先获取所有带有STNO的行和一个数字。 第二,删除除数字以外的所有内容。

在查找对话框中选择标记选项卡。 确保选中书签行 在“ 查找内容”框中,输入STNO:\\s*\\d+ ,然后单击“ 全部标记”

访问菜单=>搜索=>书签=>复制书签行。 然后粘贴到另一个缓冲区。 另外,要在同一个文件中使用菜单=>搜索=>书签=>删除未标记的行。 现在,您应该将所有需要的行放在缓冲区中。

进行正则表达式搜索并替换设置, 找到 ^.*STNO:\\s*(\\d+).*$然后替换\\1 然后单击全部替换

以上假设每行只能找到一个数字。

========================

因为只需要数字,所以另一种方法是在所需数字周围放置换行符和一个标记,然后删除没有该标记的任何行,最后删除该标记。

让标记keep 进行搜索和替换设置查找keep并将替换为单个空格字符,确保未选择区分大小写 然后单击全部替换 接下来,进行正则表达式搜索和替换设置, 找到要为^STNO:\\s*(\\d+)并将替换\\r\\nkeep\\1\\r\\n 您可能希望区分大小写 然后单击全部替换 接下来,使用查找keep 内容进行标记行(如上所述),然后按Menu => Search => Bookmark =>删除未标记的行。 最后,进行搜索和替换设置, 找到keep将替换为为空。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM