Pregunta

Estoy tratando de reemplazar una abreviatura de estado de dos letras con texto y luego la abreviatura. Finalmente quiero encontrar y reemplazar el resto. ¿Cómo capturo el valor encontrado? .... Probé \ 1 y {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";

Actualizar $ 1 no funciona.

Estoy encontrando: [A-Z] [A-Z] reemplazando con: if (usState == " $ 1

¿Fue útil?

Solución

Curiosamente, las expresiones regulares de Visual Studio son diferentes de las expresiones regulares .Net normales. Tienen una sintaxis ligeramente diferente para etiquetas y reemplazos. Para etiquetar un fragmento de texto para una coincidencia posterior, debe envolverlo entre llaves {}. Luego puede usar \ n en las cadenas de reemplazo donde n es la enésima expresión etiquetada. Para su escenario, aquí están las cadenas que debe usar

  • Buscar: {[A-Zfont>[A-Zfont>}
  • Reemplazar: if (usState == " \ 1 ")

Otros consejos

Mi combinación de expresiones regulares coincide con $ 1. Prueba eso.

Puede que no haya entendido su problema, pero ¿por qué no graba una macro temporal para hacer la transformación?

Encierre el [A-Z] [A-Z] entre paréntesis, que lo captura; luego, use \ 1 en su cadena de reemplazo para referirse a la captura.

Dado que esta pregunta parece ser un duplicado de https://stackoverflow.com/a/3147177/154480 pero Encontré este primero: desde Visual Studio 2012, puede usar (patrón) y $ 1 . Como ejemplo para esta pregunta específica, busque ([A-Z] {2}) por if (usState == " $ 1 ")

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top