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

en utilisant le bloc-notes++, Comment puis-je supprimer toutes les lignes commençant par # or ;?

52
demandé sur BoltClock 2011-03-03 23:10:19

5 réponses

Rechercher:

^[#;].*

remplacer par rien. Le ^ indique le début d'une ligne, le [#;] est une classe de caractères pour correspondre à # ou ; , et .* correspond à toute autre chose dans la ligne.

dans les versions de Notepad++ avant 6.0, vous ne pourrez pas réellement supprimer les lignes en raison d'une limitation dans son moteur regex; le résultat de remplacement en lignes vierges pour chaque ligne appariée. Dans autrement dit, ceci:

# foo
; bar
statement;

se transformera en:



statement;

cependant, le remplacement fonctionnera dans Noetpad++ 6.0 si vous ajoutez \r , \n ou \r\n à la fin du modèle, en fonction de la ligne de fin de votre fichier utilise, résultant en:

statement;
94
répondu BoltClock 2012-04-18 17:19:55

comme d'autres l'ont noté, dans la Notepad++ 6.0 et plus tard, il est possible d'utiliser la fonctionnalité" 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 compte pas d'espace blanc qui peut exister avant le ";" ou le caractère "#" sur une ligne. Par exemple, les lignes qui commencent par ";" ou "#" mais qui sont "tabbed-in" 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 de la mise en garde mentionnée dans la réponse de BoltClock, soit: variances in newline characters across systems.

une amélioration est d'utiliser ^(\s)*(#|;).*(\r\n|\r|\n)? , qui tient compte de l'espace blanc principal et les variances de caractères newline. De plus , le ? traite 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 discerner quel type de caractère newline est utilisé dans un document donné (et plusieurs types peuvent être utilisés): View -> Show Symbol -> Show End of Line.

7
répondu Ben Johnson 2018-08-17 22:34:36

C'est possible, mais pas directement.

en bref, allez à la recherche, utilisez votre regex, cochez" mark line "et cliquez sur"Find all". 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 " voila.

j'ai trouvé la réponse ici (la bonne réponse est la seconde, pas la accepté de!): Comment supprimer des lignes spécifiques sur Notepad++?

5
répondu stema 2017-05-23 12:34:30

peut-être que tu devrais essayer

^[#;].*$

^ correspond au mendiant, $ à la fin.

2
répondu Lundberg 2016-09-10 10:57:04

dans le bloc-notes++, vous pouvez utiliser l'onglet Mark dans le dialogue Find Pour marquer toutes les lignes correspondant à votre requête qui peuvent être regex ou normal (Joker).

ensuite, utilisez Search > Bookmark > Remove Bookmarked Lines.

-1
répondu NialF 2015-08-28 01:37:08