¿Cómo uso regex para reemplazar caracteres que no son palabras en una cadena específica?

StackOverflow https://stackoverflow.com/questions/824052

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo un archivo de texto con una fila como esta:

SendersTimeSeriesIdentification: COMPANY_A/COMPANY_B/REF_7/20090505

Me gustaría reemplazar todos los caracteres que no son palabras en la parte del valor con el carácter n , así:

SendersTimeSeriesIdentification: COMPANYnAnCOMPANYnBnREFn7n20090505

Pero hay cadenas similares en todo el archivo, que deben permanecer intactas. Un ejemplo es:

MessageIdentification: REF_7/VER_1/20090505

Creo que debo usar mirar atrás, y llegué a este intento (VB.NET):

Regex.Replace(fileContentString, "(?<=SendersTimeSeriesIdentification: )(\W)", "0")

Esto no funciona como me gustaría. Entonces mis preguntas son:
¿Es posible reemplazar todos los caracteres que no son palabras en una cadena específica con solo una llamada Regex.Replace? ¿Cómo?

¿Fue útil?

Solución

Pruebe este:

Regex.Replace(fileContentString, "(?<=SendersTimeSeriesIdentification:\s.*)[_\W]", "0")

Esto reemplaza todos los caracteres \ W y _ con " 0 " después de " SendersTimeSeriesIdentification: " ;.

Otros consejos

En lugar de hacer un reemplazo de expresiones regulares, dividiría el archivo en líneas, luego solo procesaría líneas que comiencen con " SendersTimeSeriesIdentification: " ;. De esa manera, el reemplazo de expresiones regulares es agradable y simple.

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