2017-05-24 1 views
-3

J'ai environ 100 fichiers .ini à modifier. Je dois changer seulement le nombre de "(guillemets doubles) autour des valeurs de chaîne Par exemple:.Fichiers .INI - Modifier les chaînes uniquement - (Bloc-notes ++ Regex remplacer)

Change:

[GROUP] 
AnyWord1="StR1Ng?!,''.-<br/>" 
AnyWord2="["Don''t change these quotes either",13401.8,0]" 
AnyWord3="42" 
AnyWord4="Another String" 
AnyWord5="Another String" 

en:

[GROUP] 
AnyWord1=""StR1Ng?!,''.-<br/>"" 
AnyWord2="["Don''t change these quotes either",13401.8,0]" 
AnyWord3="42" 
AnyWord4=""Another String"" 
AnyWord5=""Another String"" 

Je pense que cela peut être fait avec Notepad ++ Remplacer par RegEx, mais je ne peux pas le faire fonctionner

Jusqu'à présent, j'ai ceci, qui va sélectionner les lignes requises, tant qu'il n'y a pas de chaînes qui commencent par un nombre:

^([a-zA-Z0-9]) + (=) (") ([^ (0-9) []) ([^"] *) (")

+0

Comment savez-vous laisser AnyWord2 seul? – NetMage

+0

Salut, J'ai fait quelques tests avec l'outil que j'utilise, et pour une raison quelconque, il pense différemment à ces deux chaînes. – MWK

+0

Bienvenue dans Stack Overflow. Ce n'est pas un code ou un service d'écriture regex. Nous sommes heureux d'essayer et d'aider, mais nous nous attendons à ce que vous fassiez quelques efforts pour résoudre le problème vous-même en premier. Quels efforts avez-vous faits pour écrire une regex pour faire ce que vous demandez, et comment cela n'a-t-il pas fonctionné comme vous vous y attendiez? Comment vous attendez-vous à ce que la regex fasse la différence entre ceux que vous voulez supprimer et ceux que vous ne voulez pas? (Et * j'ai testé et l'outil ne l'aime pas lorsque je supprime cet ensemble * n'est pas utile à une regex en cours d'exécution, vous aurez besoin de faire beaucoup mieux que cela pour nous.) –

Répondre

0

Recherche:

^(?<varname>([a-zA-Z0-9])+)(=)(")(?<val>([^(0-9)[])([^"\r\n]*))(") 

Remplacer par:

$+{varname}=""$+{val}"" 

Toutes les chaînes ne doivent pas commencer par un nombre bien.