web-dev-qa-db-fra.com

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

Avec Notepad ++, comment puis-je supprimer toutes les lignes commençant par # ou;?

61
Wasim A.

Trouver:

^[#;].*

Remplacez par rien. Le ^ indique le début d’une ligne, le [#;] est une classe de caractères pour correspondre à # ou ;, et .* 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'expression régulière. le remplacement entraîne des lignes vides pour chaque ligne correspondante. En d'autres termes, ceci:

 # foo 
; barre 
 déclaration; 

Deviendra:



déclaration;

Toutefois, le remplacement fonctionnera dans Notepad ++ 6.0 si vous ajoutez \r, \n ou \r\n à la fin du motif, selon la ligne utilisée par votre fichier, ce qui entraîne:

déclaration;
106
BoltClock

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

Tao fournit une expression régulière qui sert de point de départ, mais ne tient pas compte des espaces blancs pouvant exister avant le ";" ou "#" caractère sur une ligne donnée. Par exemple, les lignes commençant par ";" ou "#" mais "tabbed-in" ne sera pas supprimé lors de l'utilisation de l'expression régulière de Tao, ^(#|;).*\r\n.

L'expression régulière de Tao ne tient pas compte de la mise en garde mentionnée dans la réponse de BoltClock: les écarts dans les caractères de nouvelle ligne d'un système à l'autre.

Une amélioration consiste à utiliser ^(\s)*(#|;).*(\r\n|\r|\n)?, qui prend en compte les variances majeures des espaces et des caractères de nouvelle ligne. En outre, la fin ? gère les cas dans lesquels la dernière ligne du fichier commence par # ou ;, mais ne se termine pas par une nouvelle ligne.

Pour les curieux, il est possible de déterminer quel type de caractère de nouvelle ligne est utilisé dans un document donné (et plusieurs types peuvent être utilisés): Affichage -> Afficher le symbole -> Afficher la fin de la ligne.

7
Ben Johnson

C'est possible, mais pas directement.

En bref, allez à la recherche, utilisez votre regex, cochez "marquer une ligne" et cliquez sur "Trouver tout". 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 d'un signet", le tour est joué.

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

6
stema

Peut-être devriez-vous essayer

^[#;].*$

^ Correspond au début, $ À la fin.

3
Lundberg

Dans Notepad ++, vous pouvez utiliser l'onglet Marquer de la boîte de dialogue Rechercher pour mettre en signet toutes les lignes correspondant à votre requête, qu'il s'agisse de regex ou de normales (caractères génériques).

Ensuite, utilisez Rechercher> Signet> Supprimer les lignes marquées.

0
NialF