71 votes

Supprimer toutes les lignes commençant par # ou ; dans Notepad++.

En utilisant Notepad++, comment supprimer toutes les lignes commençant par # ou ; ?

129voto

BoltClock Points 249668

Trouvez :

^[#;].*

Remplacer par rien. Le site ^ indique le début d'une ligne, le [#;] est une classe de caractères qui correspond à l'un ou l'autre # o ; y .* correspond à tout autre élément de la ligne.

Dans les versions de Notepad++ antérieures à 6.0, vous ne pourrez pas réellement supprimer les lignes en raison d'une limitation de son moteur d'expressions rationnelles ; le remplacement entraîne des lignes vides pour chaque ligne correspondante. En d'autres termes, ceci :

\# foo
; bar
statement;

Se transformera en :

statement;

Cependant, le remplacement fonctionnera dans Notepad++ 6.0 si vous ajoutez \r , \n o \r\n à la fin du motif, en fonction de la terminaison de ligne utilisée par votre fichier, ce qui donne :

statement;

10voto

Ben Johnson Points 1891

Comme d'autres l'ont noté, dans Notepad++ 6.0 et versions ultérieures, il est possible d'utiliser la fonction "Remplacer" pour supprimer toutes les lignes qui commencent par " ;" ou "#".

Tao fournit une expression régulière qui sert de point de départ, mais elle ne tient pas compte des espaces blancs qui peuvent exister avant le caractère " ;" ou "#" sur une ligne donnée. Par exemple, les lignes qui commencent par " ;" ou "#" mais qui sont "tabulées" ne seront pas supprimées en utilisant l'expression régulière de Tao, ^(#|;).*\r\n .

L'expression régulière de Tao ne tient pas compte non plus de la mise en garde mentionnée dans la réponse de BoltClock : les variations des caractères de nouvelle ligne entre les systèmes.

Une amélioration consiste à utiliser ^(\s)*(#|;).*(\r\n|\r|\n)? qui tient compte des variations de l'espace blanc de tête et du caractère de nouvelle ligne. De même, le caractère de queue ? gère les cas dans lesquels la dernière ligne du fichier commence par # o ; mais ne se termine pas par une nouvelle ligne.

Pour les curieux, il est possible de discerner quel type de caractère de nouvelle ligne est utilisé dans un document donné (et plusieurs types peuvent être utilisés) : View -> Show Symbol -> Show End of Line.

7voto

stema Points 36113

C'est possible, mais pas directement.

En bref, allez dans la recherche, utilisez votre regex, cochez "marquer la ligne" et cliquez sur "Tout trouver". Il en résulte des signets pour toutes ces lignes.

Dans le menu de recherche il y a un point "supprimer les lignes marquées" voila.

J'ai trouvé la réponse ici (la bonne réponse est la deuxième, pas celle acceptée !): Comment supprimer des lignes spécifiques dans Notepad++ ?

3voto

Lundberg Points 394

Vous devriez peut-être essayer

^[#;].*$

^ correspond au début, $ la fin.

0voto

NialF Points 11

Dans Notepad++, vous pouvez utiliser l'onglet Marquer de la boîte de dialogue Rechercher pour marquer toutes les lignes correspondant à votre requête, qui peut être une expression rationnelle ou normale (caractère générique).

Utilisez ensuite Recherche > Signet > Supprimer les lignes marquées d'un signet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X