2014-06-05 10 views
6

J'ai un fichier texte avec des informations sur un enregistrement, y compris les numéros de piste et les noms, et je veux supprimer tous les autres textes sauf le numéro de piste et les noms de pistes. Par exemple, le fichier texte ressemble à ceci:notepad ++ supprimer tout le texte sauf ce qui correspond 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 

Je veux rester avec ceci:

d1t01 - trackname 

d1t02 - trackname 

d1t03 - trackname 

d1t04 - trackname 

d1t05 - trackname 

d1t06 - trackname 

d1t07 - trackname 

d1t08 - trackname 

d1t09 - trackname 

d1t10 - trackname 

d1t11 - trackname 

je me suis dit comment trouver le début de la ligne avec ce regex:

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

Mais je ne peux pas comprendre comment supprimer le reste du "texte" et ne laisser que ces lignes. J'ai également besoin de supprimer les "retours" et ne pas être laissé avec des lignes vides dans le fichier texte.

Merci!

Répondre

12

EDIT: Vous devriez pouvoir utiliser ce qui suit ici.

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

Expression régulière: la réponse de

^    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 est proche, mais il ne supprimera pas toutes les nouvelles lignes. Vous avez dit que vous ne voulez pas de lignes vides dans le fichier du tout, donc ce serait une solution plus complète:

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

Remplacer:

Dans ce cas, votre corps initial de texte serait remplacé par

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

Étape 1 - lignes match. Boîte de dialogue Rechercher> onglet Marquer, vous pouvez mettre en signet des lignes qui correspondent.

Étape 2 - Supprimer les lignes marquées d'un signet OU Supprimer les lignes non marquées. Rechercher> Signet> Supprimer les lignes non marquées ou Supprimer les lignes marquées

Questions connexes