首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx Notepad++

RegEx Notepad++
EN

Stack Overflow用户
提问于 2013-07-19 18:28:02
回答 1查看 181关注 0票数 0

我有一系列的行,格式如下:

代码语言:javascript
复制
               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带入了我不想要的比赛中。请帮帮忙。

我只需要保留匹配的结果,其余的我想删除或复制匹配的项目到一个新的文件中更容易。

EN

回答 1

Stack Overflow用户

发布于 2013-07-19 22:55:48

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

在查找对话框中选择标记选项卡。确保勾选了书签行。在“Find what”框中输入STNO:\s*\d+,然后单击“”“Mark all”。

访问菜单=> Search => => Bookmark => Copy书签中的行。然后粘贴到另一个缓冲区。或者,要在同一文件中工作,请使用菜单=> Search =>书签=>删除未标记的行。现在,您应该将所有需要的行都放在一个缓冲区中。

执行正则表达式搜索并替换设置,查找将为^.*STNO:\s*(\d+).*$替换为\1。然后单击Replace all

上面假设每行只有一个号码。

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

由于只想要数字,另一种方法是在想要的数字周围加上换行符,然后删除任何没有标记的行,最后删除标记。

让标记为keep。执行搜索和替换设置,查找 to be keep 替换为单个空格字符,确保未选中Match case;然后单击Replace all。接下来,执行正则表达式搜索并替换设置查找^STNO:\s*(\d+)的内容,并将替换为\r\nkeep\1\r\n。您可能希望勾选“全部匹配大小写”(Match case );然后单击“全部替换”()。接下来,使用Find what设置为keep来标记行(如上所述),然后单击Menu => Search => Bookmark => Remove Un标记行。最后,执行一个搜索和替换设置,将查找什么设置为keep,并将Replace 设置为空。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17743888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档