Visual Studio Localizar e Substituir Variáveis
-
03-07-2019 - |
Pergunta
Eu estou tentando substituir uma abreviatura do estado de duas letras com o texto, em seguida, a abreviatura. Eventualmente eu quero encontrar e substituir o resto. Como faço para capturar o valor encontrado? .... Eu tentei \ 1 e {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";
Atualização $ 1 não funciona.
Eu estou achando: [A-Z] [A-Z] substituindo com: if (USState == "$ 1
Solução
Curiosamente, o Visual Studio Expressões Regulares são diferentes expressões regulares .Net normais. Eles têm uma sintaxe ligeiramente diferente para marcas e substitui. A fim de marcar um pedaço de texto para a correspondência mais tarde você deve envolvê-la em chaves {}. Então você pode usar \ n nas seqüências de substituição onde n é o enésimo marcado expressão. Para o seu cenário aqui estão as cordas você deve usar
- Encontre:
{[A-Z][A-Z]}
- Substituir:
if( usState == "\1")
Outras dicas
Meu matcher regex corresponde a $ 1. Tente fazer isso.
Eu posso não ter entendido o seu problema, mas por que você não gravar uma macro temporária para fazer a transformação?
Coloque o [A-Z] [A-Z] entre parênteses, que captura-lo; em seguida, use \ 1 em seu texto de substituição para se referir à captura.
Uma vez que esta pergunta parece ser uma duplicata de https://stackoverflow.com/a/3147177/154480 mas Eu encontrei este primeiro: uma vez que Visual Studio 2012, você pode usar (pattern)
e $1
. Como um exemplo para esta questão específica, encontrar ([A-Z]{2})
por if( usState == "$1")