Vous essayez de parse XML with regular expressions.
Cependant, ce que vous faites mal de toute façon est d'utiliser une répétition gourmande. Cela ira tout le chemin de la première <name>
à la toute dernière </name>
(même si elles ne sont pas ensemble), parce que le .*
va essayer de consommer autant que possible tout en remplissant toujours la condition de match .. Utilisez ceci à la place:
Search: (<name>).*?(</name>)
Replace: \1xyz\2
Ou, pour être sur le côté sûr, vous pouvez également échapper à la <
et >
, car ils sont des méta-caractères dans certains cas spécifiques (pas dans celui-ci cependant):
Search: (\<name\>).*?(\</name\>)
Replace: \1xyz\2
dans les deux cas, cela rend le .*
ungreedy, c.-à-d. consommer le moins possible.
Et assurez-vous de mettre à niveau vers Notepad ++ 6, car auparavant, il y avait quelques problèmes avec le moteur regex de Notepad ++.
Enfin, comme hoombar souligné dans un commentaire .
correspond par défaut tous les caractères sauf caractères de saut de ligne. Dans Notepadd ++, vous pouvez modifier ce comportement en cochant la case . matches newline
.
Qu'est-ce qui ne va pas lorsque vous l'essayez? – itsbruce