Notepad ++ delete all text except what matches regular expression

I have a text file with recording information, including track numbers and names, and I want to delete all other texts except the track number and track names. For example, a text file looks like this:

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 

I want to leave only this:

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

I figured out how to match the beginning of a line with this regular expression:

 d[0-9]+t[0-9]+[0-9]+ - 

But I can’t figure out how to remove the rest of the β€œtext” and leave these lines only. I also need it to remove the β€œreturn” and not leave any empty lines in the text file.

Thanks!

+6
source share
3 answers

EDIT . You can use the following here.

 Find: ^(?!d\w+).*\r?\n? Replace: 

Regular expression:

 ^ the beginning of the string (?! look ahead to see if there is not: d 'd' \w+ word characters (az, AZ, 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) 
+12
source

Hwnd's answer is close, but it will not delete all newlines. You said that you do not need empty lines in the file at all, so this will be a more complete solution:

Find : ^ (?! D [0-9] + t [0-9] +). * \ r? \ n?

Replace :

In this case, your source text will be replaced by

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

Step 1 - Matching Lines. The dialog box "Search"> "Mark", you can mark the lines that match.

Step 2 - Delete the bookmarked lines OR Delete the lines not associated with the bookmark. Search> Bookmark> Delete Unmarked Rows or Delete Sub-Rows

0
source

Source: https://habr.com/ru/post/970357/


All Articles