Regex remplace par Notepad ++

0

Dans mon fichier XML, il y a beaucoup de sous-chaînes commençant par STDSUP, puis trois chiffres. Par exemple: STDSUP-123. J'aimerais remplacer le STDSUP par le CCDA. Dans certaines sous-chaînes, STUSUP est suivi de caractères non numériques. Je ne veux pas les changer. J'ai donc utilisé STDSUP- \ d \ d \ d dans le champ de recherche et CCDA- \ d \ d \ d dans le champ de remplacement. Mais les trois chiffres sont remplacés par ddd. Je souhaite remplacer uniquement STDSUP et souhaite que les chiffres restent inchangés.

De l'aide?

Omar Shehab
la source

Réponses:

1

Pour conserver une partie de la chaîne intacte, vous souhaitez utiliser un groupe dans votre expression "trouver" et une référence arrière dans votre expression "remplacer".

Trouver: STDSUP-(\d\d\d)
Remplacer: CCDA-\1

screencap

nc4pk
la source
1

À partir de Notepad ++ version 6, vous pouvez également séparer la correspondance avec des groupes de capture de style PCRE:

Trouver quoi: (STDSUP -) (\ d \ d \ d)

Remplacer par: CCDA- $ 2

kjh23
la source
-1: Cela ne fonctionne pas dans Notepad ++ - il remplace la chaîne de caractères que l'OP voulait conserver avec $2. Voir cette capture d'écran .
nc4pk
1
Cela fonctionne dans Notepad ++ à partir de la version 6. voir: stackoverflow.com/a/11970406/1521193
kjh23
Ah, mon mauvais. Je courais encore l'ancienne version. Edité et non voté :)
nc4pk