99 votes

Utilisation de RegEX pour préfixer et ajouter dans Notepad++.

J'ai une liste assez importante de mots dans un fichier txt et j'essaie d'effectuer une recherche et un remplacement par regex dans Notepad++. J'ai besoin d'ajouter une chaîne avant chaque ligne et après chaque ligne . De sorte que :

wordone
wordtwo
wordthree

devenir

able:"wordone"
able:"wordtwo"
able:"wordthree"

Comment puis-je le faire ?

0 votes

Désolé, ces chaînes de mots sont censées être sur des lignes séparées ! Je parie que ça a embrouillé les choses maintenant...

0 votes

Un bonbon qui m'a épargné beaucoup de recherches sur Google :)

188voto

Jonathan Lonowski Points 45253

En supposant que les mots alphanumériques, vous pouvez utiliser :

Search  = ^([A-Za-z0-9]+)$
Replace = able:"\1"

Ou, si vous voulez simplement mettre les lignes en surbrillance et utiliser "Remplacer tout" et "Dans la sélection" (avec le même remplacement) :

Search = ^(.+)$

^ pointe vers le début de la ligne.
$ pointe vers la fin de la ligne.

\1 sera la correspondance source entre les parenthèses.

0 votes

Merci, après environ 30 minutes de recherche, je suis arrivé ici avec succès :)

0 votes

Les expressions Reg sont des bouées de sauvetage. Merci pour l'aide.

0 votes

Excellent travail +1 pour l'explication

39voto

Mukul Aggarwal Points 684

Expression régulière qui peut être utilisée :

Find: \w.+
Replace: able:"$&"

En tant que, $& vous donnera la chaîne de caractères que vous recherchez.

Référez-vous : regexr

31voto

Peter Perháč Points 8007

Pourquoi n'utilisez-vous pas les capacités d'édition multiligne de Notepad++ ?

Maintenez la touche Alt enfoncée tout en sélectionnant du texte (à l'aide de votre méthode habituelle de cliquer-glisser) pour sélectionner du texte sur plusieurs lignes. On parle aussi parfois d'édition en colonnes.

Vous pouvez placer le curseur au début du fichier, appuyer sur les touches Alt et Shift (et les maintenir enfoncées), puis continuer à appuyer sur la flèche vers le bas ou sur la touche PageDown pour sélectionner les lignes que vous souhaitez faire précéder d'un texte :-) Facile. L'édition multiligne est une fonctionnalité très utile de Notepad++. Elle est également possible dans Visual Studio, de la même manière, et aussi dans Eclipse en passant en mode de sélection de blocs en appuyant sur Alt+Shift+A, puis en utilisant la souris pour sélectionner le texte sur plusieurs lignes.

1 votes

+1 C'est vraiment génial, je ne savais pas qu'on pouvait faire ça. Est-il possible d'ajouter quelque chose à la fin de chaque ligne, lorsque la longueur de chaque ligne est différente ? Par exemple, lorsque la largeur de la colonne varie, il serait intéressant de pouvoir ajouter du texte à chaque ligne. J'ai une liste de fonctions et je dois ajouter "() ;" à chaque ligne, mais chaque nom de fonction a une largeur différente. J'utilise actuellement une macro pour faire cela, merci !

5 votes

Pour l'ajout, il est probablement préférable d'utiliser la recherche/remplacement simple en utilisant le mode de recherche "étendu". Vous pouvez rechercher les fins de ligne, par exemple \r\n et remplacez-la par <whatever you want to append>\r\n

0 votes

C'est en fait une très bonne solution, surtout avec le commentaire APPEND ci-dessus.

6voto

Utilisez une macro.

Macro>Démarrer l'enregistrement

Utilisez le clavier pour effectuer vos modifications de manière répétable, par ex.

accueil>type "able">fin>flèche descendante>accueil

Ensuite, retournez dans le menu et cliquez sur arrêter l'enregistrement puis exécutez une macro plusieurs fois.

Cela devrait faire l'affaire et pas de complications basées sur les regex !

5 votes

Que veut dire "complications" ? :-)

0 votes

+1 pour la facilité d'utilisation ! J'avais besoin d'ajouter une "tabulation" à la fin de chaque ligne d'un fichier et cette astuce a fait l'affaire.

1voto

luky Points 567

Dans Visual Studio Code, j'ai trouvé qu'une simple expression rationnelle comme ^ fonctionnait.

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