Regex 记事本++;删除除与正则表达式匹配的文本以外的所有文本

Regex 记事本++;删除除与正则表达式匹配的文本以外的所有文本,regex,notepad++,Regex,Notepad++,我有一个包含录音信息的文本文件,包括音轨编号和名称,我想删除除音轨编号和音轨名称之外的所有其他文本。例如,文本文件如下所示: text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text te

我有一个包含录音信息的文本文件,包括音轨编号和名称,我想删除除音轨编号和音轨名称之外的所有其他文本。例如,文本文件如下所示:

text text text text
text text text text text text text text
text text text text text text text text text text text text
text text text text
text text text text text text text text
text text text text 
text text text text text text text text text text text text text text text text 
text text text text text text text text 
text text text text 

d1t01 - trackname

d1t02 - trackname

d1t03 - trackname

d1t04 - trackname

d1t05 - trackname

d1t06 - trackname

d1t07 - trackname

d1t08 - trackname

d1t09 - trackname

d1t10 - trackname

d1t11 - trackname

text text text text
text text text text text text text text
text text text text text text text text text text text text
text text text text
text text text text text text text text
text text text text 
text text text text text text text text text text text text text text text text 
text text text text text text text text 
text text text text 
我只想留下这个:

d1t01 - trackname

d1t02 - trackname

d1t03 - trackname

d1t04 - trackname

d1t05 - trackname

d1t06 - trackname

d1t07 - trackname

d1t08 - trackname

d1t09 - trackname

d1t10 - trackname

d1t11 - trackname
我找到了如何将行的开头与这个正则表达式匹配:

d[0-9]+t[0-9]+[0-9]+ -
但我不知道如何删除其余的“文本”,只留下那些行。我还需要它来删除“返回”,而不是在文本文件中留下任何空白行


谢谢大家!

编辑:您应该能够在此处使用以下内容

Find: ^(?!d\w+).*\r?\n?
Replace:   
正则表达式:

^              the beginning of the string
(?!            look ahead to see if there is not:
  d              'd'
  \w+            word characters (a-z, A-Z, 0-9, _) (1 or more times)
)              end of look-ahead
.*             any character except \n (0 or more times)
\r?            '\r' (carriage return) (optional)
\n?            '\n' (newline) (optional)

hwnd的答案很接近,但它不会删除所有新行。您说过您根本不希望文件中有任何空行,因此这将是一个更完整的解决方案:

查找:^(?!d[0-9]+t[0-9]+).\r?\n

更换

在这种情况下,文本的初始主体将替换为

d1t01 - trackname
d1t02 - trackname
d1t03 - trackname
d1t04 - trackname
d1t05 - trackname
d1t06 - trackname
d1t07 - trackname
d1t08 - trackname
d1t09 - trackname
d1t10 - trackname
d1t11 - trackname

第1步-匹配线。“查找”对话框>“标记”选项卡,可以为匹配的行添加书签


步骤2-删除已添加书签的行或删除未添加书签的行。搜索>书签>删除未标记行或删除书签行

不使用正则表达式,而是解决问题的一种非常简单的方法。