2014-06-05 22 views
6

Mam plik tekstowy z informacjami o nagraniu, w tym numerami ścieżek i nazwami, i chcę usunąć cały tekst oprócz numeru ścieżki i nazw ścieżek. Na przykład plik tekstowy wygląda następująco:notepad ++ usuwanie całego tekstu poza tym, co pasuje do regex

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 

Chcę zostać z właśnie tego:

d1t01 - trackname 

d1t02 - trackname 

d1t03 - trackname 

d1t04 - trackname 

d1t05 - trackname 

d1t06 - trackname 

d1t07 - trackname 

d1t08 - trackname 

d1t09 - trackname 

d1t10 - trackname 

d1t11 - trackname 

I zorientowali się, jak dopasować początek linii z tego regex:

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

Ale nie mogę wymyślić, jak usunąć resztę "tekstu" i opuścić te linie. Potrzebuję go również, aby usunąć "zwraca" i nie pozostawiać żadnych pustych linii w pliku tekstowym.

Dziękujemy!

Odpowiedz

12

EDYTOWANIE: Powinieneś być w stanie użyć następujących tutaj.

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

Regular Expression: odpowiedź

^    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) 
4

hWnd jest blisko, ale nie usunie wszystkie nowe linie. Mówiłeś, że nie chce żadnych pustych wierszy w pliku w ogóle, więc to byłoby bardziej kompletne rozwiązanie:

Znajdź:^(?! d [0-9] + t [0- 9] +). * \ R? \ N?

Wymień:

W tym przypadku początkowy ciało tekst zostanie zastąpiony przez

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

Krok 1 - linie meczu. Znajdź okno dialogowe> zakładka Zaznacz, możesz dodać do zakładek pasujące do siebie linie.

Krok 2 - Usuń linie zaznaczone zakładkami LUB Usuń linie nie zaznaczone zakładkami. Wyszukaj> Zakładka> Usuń nieoznaczone linie lub usuń zaznaczone linie

Powiązane problemy