Variables de recherche et de remplacement de Visual Studio
-
03-07-2019 - |
Question
J'essaie de remplacer une abréviation d'état à deux lettres par un texte, puis l'abréviation. Finalement, je veux trouver et remplacer le reste. Comment puis-je capturer la valeur trouvée? .... j'ai essayé \ 1 et {1}
AL 32.2679134368897 -86.5251510620117
AR 35.2315113544464 -92.2926173210144
AZ 33.3440766538127 -111.955985217148
CO 39.7098631425337 -104.899092934348
if( usState == "AZ") dpos= "33.4736704187888" + " " + "-112.043138087587";
if( usState == "CA") dpos= "36.0783581515733" + " " + " -119.868895584259";
if( usState == "CO") dpos= "39.8950788035537" + " " + " -104.831521872318";
if( usState == "CT") dpos= "41.6001570945562" + " " + " -72.6606015937273";
Mise à jour 1 $ ne fonctionne pas.
Je trouve: [A à Z] [A à Z] en remplaçant par: if (usState == " $ 1
La solution
Curieusement, les expressions régulières Visual Studio sont différentes des expressions régulières .Net normales. Ils ont une syntaxe légèrement différente pour les balises et les remplace. Afin de marquer un morceau de texte pour une correspondance ultérieure, vous devez le mettre entre accolades {}. Ensuite, vous pouvez utiliser \ n dans les chaînes de remplacement, où n est la nième expression balisée. Pour votre scénario, voici les chaînes que vous devriez utiliser
- Trouver:
{[AZ] [AZ]}
- Remplacer:
si (usState == "\ 1")
Autres conseils
Mon matcher regex correspond à $ 1. Essayez ça.
Je n'ai peut-être pas compris votre problème, mais pourquoi n'enregistrez-vous pas une macro temporaire pour effectuer la transformation?
Placez le [A-Z] [A-Z] entre parenthèses, qui le capture; utilisez ensuite \ 1 dans votre chaîne de remplacement pour faire référence à la capture.
Étant donné que ces questions semblent être une copie de https://stackoverflow.com/a/3147177/154480 , mais J'ai trouvé celui-ci en premier: depuis Visual Studio 2012, vous pouvez utiliser (motif)
et $ 1
. Par exemple, pour cette question spécifique, recherchez ([A-Z] {2})
par si (usState == "quot $ 1")