2012-03-20 3 views
2

Je veux supprimer toutes les lignes qui contiennent le mot « Faux »Suppression d'une ligne contenant un mot spécifique

Par exemple, si j'ai un fichier texte qui contient les éléments suivants:

Avant

[email protected]|J|1983>2012>3000|Good|[0=%] 
[email protected]|N|1985>2012>3000|False|[~~~'#'***+++~~~] 
[email protected]|N|1985>2012>3000|Good|[$"$!]|Number 2123 

Après

[email protected]|J|1983>2012>3000|Good|[0=%] 
[email protected]|N|1985>2012>3000|Good|[$"$!]|Number 2123 

qui r egex Je devrais utiliser dans Notepad ++ pour supprimer les lignes indésirables?

+0

Que voulez-vous dire par une "mauvaise ligne"? –

+0

Lire le premier commec => supprimer toutes les lignes qui contient le mot "False". Merci – Eule2000

+0

Rien que je ne comprends pas encore ce Regexthing, je lève les yeux sur Google mais je n'ai pas trouvé ce que je cherche, alors je demande de l'aide ici – Eule2000

Répondre

3

C'est probablement aussi simple que d'aller dans le menu Outils de Notepad ++ et enterring le texte à rechercher préciser ensuite supprimer chaque ligne il le trouve.

Dans le cas contraire une expression régulière normale pour identifier toute la ligne pourrait être quelque chose comme ce -

refaire

Si la valeur par défaut est point comme tout sauf nouvelle ligne, alors ce

(.) 0

autre, ce

[^\n]*False[^\n]*\n?

Ces doit correspondre à une ligne entière (plus un saut de ligne) si 'Faux' est sur la ligne.
Quelque chose de plus comme «Faux» doit être entouré de délimiteurs est une logique supplémentaire.

+0

Cela fonctionne pour moi! :) – calbertts

1

Vous ne pouvez pas. Bloc-notes ++ does not support mixing RegExps with line ends

La suppression de la fin de la ligne ou la jonction des lignes peut uniquement être effectuée en mode étendu.

,

L'option "Extended" montre \ n et \ r comme des caractères qui pourraient être apparié. Comme avec le mode de recherche Normal, Notepad ++ recherche le caractère exact.

+0

Il fait maintenant :) Notepad ++ 6.0 est sorti: voir http://stackoverflow.com/a/133989/6309 – VonC

1

Vous ne pouvez pas le faire avec une regex en une seule étape, mais en utilisant les signets, il y a un processus en deux étapes.

Dans la boîte de dialogue de recherche, il y a une option pour 'Marquer la ligne' qui peut être utilisée, entre autres, pour marquer les lignes correspondant à votre requête pour la suppression. Dans les nouvelles versions de Notepad ++, cela a été déplacé dans l'onglet 'Mark' de la boîte de dialogue Find. Une fois que les lignes désirées ont été mises en signet, dans la barre de menus, sélectionnez Rechercher> Signet> Supprimer les lignes marquées d'un signet. Comme son nom l'indique, cela supprimera toutes les lignes marquées dans la recherche précédente.

11

La dernière version de Notepad++ (v6.0) prend en charge PCRE, de sorte que vous pouvez faire:

recherche pour: .*?False.*\r?\n
remplacer par: nothing

+1

+1. Je l'ai mentionné dans http://stackoverflow.com/a/133989/6309 – VonC

Questions connexes