我有一系列的行,格式如下:
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带入了我不想要的比赛中。请帮帮忙。
我只需要保留匹配的结果,其余的我想删除或复制匹配的项目到一个新的文件中更容易。
发布于 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 设置为空。
https://stackoverflow.com/questions/17743888
复制相似问题