我有一个包含我需要保留的ID的文本文件。该文件还包含我需要删除的许多其他数据,但它不是以分隔或固定宽度格式。所以我想知道是否有一种方法可以使用Notepad ++中的查找/替换功能来删除ID以外的所有内容? ID号本身以GO开头(例如GO:000382
)。我试图实施建议here
没有成功,但是我不确定我是否正确实施。我正在使用替换功能
find = ^.*GO ([0-9] +).*$ and replace = \1.
非常感谢任何帮助。
数据看起来像这样
GO:0043894 : acetyl-CoA synthetase acetyltransferase activity [show def]
Query matches synonym "Pat enzyme" [exact synonym]
molecular function
8821 gene products
view in tree
GO:0019899 : enzyme binding [show def] molecular function
240 gene products
view in tree
GO:0000307 : cyclin-dependent protein kinase holoenzyme complex [show def]
Query matches synonym "CDK holoenzyme" [exact synonym]
我想回来的是
GO:0043894
GO:0019899
GO:0000307
答案 0 :(得分:1)
(?:[^G]|G(?!O:\d))*(GO:\d+)?
替换为:
\1\n
我在ID之间添加了一个线条,因此它们不会出现连接。随意使用另一个分隔符。
说明:
G
字符或G
后跟O:
和数字,零次或多次。这些将被删除。GO:
后跟1位或更多位数,将数字保存到捕获组中。GO:\d+
组是可选的,以便此表达式可以在最后一次匹配后轻松删除文本(第一部分将与其余文本匹配)。答案 1 :(得分:1)
使用\G.*?(GO:\d+|$)
作为全局dot-all正则表达式模式,使用$1\n
进行替换。
参见演示 here 。
答案 2 :(得分:0)
您可以使用:
search: (?:(\r?\n?|^)(GO:\d{7}).*|(?:\r?\n|^).*)
replace: $1$2