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?

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


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


-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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.