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

88

J'ai une assez grande liste de mots dans un fichier txt et j'essaie de faire une recherche et un remplacement de regex dans Notepad ++. J'ai besoin d'ajouter une chaîne avant chaque ligne et après chaque ligne. Donc:

wordone
mot deux
mot trois

devenir

capable: "wordone"
capable: "wordtwo"
capable: "wordthree"

Comment puis-je faire ceci?

zuk1
la source
Désolé, ces chaînes de mots sont censées être sur des lignes séparées! Je parie que ça a semé la confusion maintenant ...
zuk1
sweet save me a lot of googling :)
melaos

Réponses:

173

En supposant des mots alphanumériques, vous pouvez utiliser:

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

Ou, si vous voulez juste mettre en évidence les lignes et utiliser "Tout remplacer" 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 parenthèses.

Jonathan Lonowski
la source
merci, après environ 30 minutes de recherche, je suis arrivé ici pour le succès :)
dhaval
Les expressions Reg sont des sauveteurs. Merci pour l'aide.
Techgration
Excellent travail +1 pour expliquer
SSH Ce
Woot! C'est exactement ce dont j'avais besoin.
Chuck Le Butt
1
Dans le dernier N ++, ^([A-Za-z0-9]+)$n'a renvoyé aucune correspondance, mais a ^(.+)$fonctionné dans tous les scénarios. Merci!
Laurie Stearn
29

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

Maintenez la touche Alt enfoncée tout en sélectionnant du texte (en utilisant votre approche habituelle de clic et de glisser) pour sélectionner du texte sur plusieurs lignes. Ceci est parfois également appelé édition de colonne.

Vous pouvez placer le curseur au début du fichier, appuyez (et maintenez) Alt, Shift, puis continuez à appuyer sur la flèche vers le bas ou PageDown pour sélectionner les lignes que vous souhaitez ajouter avec du texte :-) Facile. L'édition multiligne est une fonctionnalité très utile de Notepad ++. C'est également possible dans Visual Studio, de la même manière, et aussi dans Eclipse en passant en mode de sélection de bloc en appuyant sur Alt + Maj + A, puis en utilisant la souris pour sélectionner du texte sur les lignes.

Peter Perháč
la source
1
+1 C'est vraiment génial, je ne savais pas que vous pouviez 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 judicieux d'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 ce faire, merci!
SSH ce
5
pour l'ajout, il est probablement préférable d'utiliser simplement rechercher / remplacer en utilisant le mode de recherche "Etendu". Vous pouvez rechercher une fin de ligne, par exemple \r\net la remplacer par<whatever you want to append>\r\n
Peter Perháč
C'est en fait une très bonne solution, en particulier avec le commentaire APPEND ci-dessus.
Chuck Le Butt
2
Ceci est utile pour le préfixage, mais pas si utile si vous voulez postfixer des lignes de longueur mixte (ajouter à la fin). Je souhaite que Notepad ++ ait une commande intégrée "Modifier les lignes" comme dans Notepad2, qui vous permet de sélectionner les lignes, appuyez sur Alt + M et ajoutez du texte avant et / ou après chaque ligne.
thdoan
21

Expression régulière pouvant être utilisée:

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

As, $&vous donnera la chaîne que vous recherchez.

Référez-vous: regexr

Mukul Aggarwal
la source
6
Bonne mention de $&! Le \1ne fonctionne pas dans tous les environnements.
pfabri
Excellente réponse à propos de $&. Cela fonctionne également dans SublimeText.
WesternGun
Excellente réponse à propos de $&. Cela fonctionne également en code VS.
P. Frank
5

Utilisez une macro.

Macro> Démarrer l'enregistrement

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

accueil> tapez "capable"> fin> flèche vers le bas> accueil

Revenez ensuite au menu et cliquez sur arrêter l'enregistrement, puis exécutez une macro plusieurs fois.

Cela devrait le faire et pas de complications basées sur les regex!

Rob Stevenson-Leggett
la source
4
Que signifie «complications»? :-)
Tomalak
+1 pour la facilité d'utilisation! J'avais besoin d'ajouter un «onglet» à la fin de chaque ligne d'un fichier et cette astuce a fait l'affaire.
NateJ