Pregunta

Tengo una solución con múltiples proyectos y necesitamos hacer algunos reemplazos globales serios.

¿Hay alguna manera de hacer un reemplazo de comodín donde permanecen algunos valores después del reemplazo?

Entonces, por ejemplo, si quiero que cada HttpContext.Current.Session [& # 8220; whatevervalue & # 8221;] se convierta en HttpContext.Current.Session [& # 8220; whatevervalue & # 8221;]. ToString () ¿se respetará el valor de cadena que se pasa? No quiero reemplazar & # 8220; whatevervalue & # 8221; Solo quiero agregar un .ToString () donde coincida el patrón.

¿Es esto posible en Visual Studio?

¿Fue útil?

Solución

Primero, respalde sus proyectos, por si acaso ... Siempre es una buena idea antes de los reemplazos masivos.

Luego, en el cuadro de diálogo Buscar / reemplazar, seleccione la casilla de verificación Usar expresiones regulares:

En el cuadro Buscar, use el patrón:

HttpContext\.Current\.Session\["{.@}"\]

y en el cuadro Reemplazar, use:

HttpContext.Current.Session["\1"].ToString()

Otros consejos

Fácil ... usa expresiones regulares y agrupación.

Encuentra qué: (HttpContext.Current.Session ["whatevervalue"])

Reemplazar con: \ 0.ToString ();

Recuerde verificar el Uso: y seleccione Expresiones regulares

Desea abrir " Buscar opciones " expansor y seleccione el " Usar expresiones regulares " opción. Una vez que haya hecho eso, desea que estas sean sus entradas para buscar / reemplazar:

Buscar:

HttpContext\.Current\.Session\[{("([^"]|\")*")}\]

Reemplazar:

HttpContext.Current.Session[\1].ToString()

Nota adicional:

Una vez que haya habilitado la opción de expresiones regulares, podrá usar los botones de triángulo que apuntan a la derecha para acceder a fragmentos de la sintaxis Regex de Visual Studio.

También tenga en cuenta que la sintaxis Regex de Visual Studio es bastante gueto, ya que no ha cambiado desde los días de Visual Studio 6 (¿o antes?), así que no dé por sentado ningún elemento de sintaxis.

Por ejemplo, uno podría esperar que mi regex de búsqueda anterior se rompa porque la barra invertida antes de la comilla doble no se escapó correctamente, pero en realidad, al colocar una barra invertida doble se romperá la expresión, no se solucionará.

Ninguna de estas respuestas parece funcionar en Visual Studio 2013, ya que esa versión parece haber cambiado finalmente a RegEx estándar. Sin embargo, aquellos que no son expertos en RegEx o aquellos que están acostumbrados a la antigua sintaxis de VS Find / Reemplazar RegEx encontrarán los botones RegEx Shortcut muy útiles.

Consulte esta respuesta para obtener más información, incluidos Buscar / Reemplazar / Envolver con ejemplos:

Visual Studio ' Buscar y rodear con 'en lugar de' Buscar y reemplazar '

Puede usar Visual Assist para tareas como esta. Es una herramienta poderosa para diferentes tipos de refactorización.

También podría considerar usar la herramienta de descarga gratuita Refactor disponible en http: // www.devexpress.com/Products/NET/IDETools/RefactorASP/

Hace mucho más que solo encontrar & amp; reemplace, lo que llaman cambiar el nombre de los miembros con nombres más comprensibles. Sus diversas características lo ayudarán fácilmente a mejorar su código.

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