Supongamos que tengo la siguiente expresión regular:
-(\d+)-
y quiero reemplazar, usando C #, el Grupo 1 (\d+)
con AA
, para obtener:
-AA-
Ahora lo estoy reemplazando usando:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
Pero realmente no me gusta esto, porque si cambio el patrón para que coincida _(\d+)_
, también tendré que cambiar la cadena de reemplazo _AA_
, y esto va en contra del principio DRY.
Estoy buscando algo como:
Mantenga el texto coincidente exactamente como está, pero cambie el Grupo 1 por this text
y el Grupo 2 por another text
...
Editar:
Eso fue solo un ejemplo. Solo estoy buscando una forma genérica de hacer lo que dije anteriormente.
Debería funcionar para:
anything(\d+)more_text
y cualquier patrón que puedas imaginar.
Todo lo que quiero hacer es reemplazar solo grupos y mantener el resto del partido.
:)
. En mi opinión, esa solución es mucho mejor y más limpia que usar lookahead y lookbehinds.