En utilisant Notepad++, comment supprimer toutes les lignes commençant par # ou ; ?
Réponses
Trop de publicités?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;
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.
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++ ?
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.