2009-10-14 7 views
8

Estoy empezando a trabajar en una gran solución de Visual Studio y he encontrado áreas que tienen bloques grandes de código descompuesto. Los bloques generalmente tienen más de 3 líneas de longitud, y todos comienzan con // (probablemente se usó Ctrl + K, C para comentarlos). Me gustaría tratar de averiguar todos los lugares que existen en mi solución para que nuestro equipo pueda abordarlos, y eliminarlos si ya no son necesarios (después de todo, estamos usando un control de código fuente adecuado y siempre podemos volver atrás). historia para ver el código antiguo!).Expresión regular de Visual Studio para buscar bloques comentados de código

Así que estoy interesado en los bloques de código comentados que abarcan más de 3 líneas consecutivas (y tampoco quiero obtener muchos falsos positivos para los comentarios de documentación XML). ¿Qué expresión regular puedo usar en el diálogo de búsqueda de Visual Studio para buscar estos bloques? He intentado lo siguiente, pero no parece funcionar:

//[^/].*\n[:Wh]*//[^/].*\n[:Wh]*//[^/] 

No estoy tratando de hacer un hallazgo y reemplazar - acaba de encontrar y vamos a ver antes de eliminar el código si ya no es necesario.

Gracias!

+0

¿Podría publicar su expresión regular como 'código' (sangría con cuatro espacios)? Ahora los '*' 's son "comidos" como etiquetas * italic *. –

+0

+1 Para señalar que el código anterior se debe eliminar, no se debe comentar. Como dijo, el sistema de control de versiones puede recuperar ese código si es necesario. – Philippe

Respuesta

4

prueba este:

[:Wh]//[^/].*\n[:Wh]*//[^/].*\n[:Wh]*//[^/].*\n 

funciona para mí.

+0

Funciona muy bien, ¡gracias! –

6

Las otras respuestas no funcionaron para mí en Visual Studio 2012 (no estoy seguro de si algo ha cambiado). A continuación se hizo:

(^[ \t]*//[^/].*\r?\n){3,} 
+0

Esto también funcionó en VS2012 para mí. – nzduck

1

Prueba con esto en el tamaño:

((^.*[^/])|(^)//[^/].*\n)+ 

En realidad esto funciona mejor para mí hasta ahora:

(((^.*[^/])|(^)//[^/].*\n)|(^//\n))(((^.*[^/])|(^)//[^/].*\n)| 
(^//\n))(((^.*[^/])|(^)//[^/].*\n)|(^//\n))(((^.*[^/])|(^)//[^/].*\n)|(^//\n))+ 

Es largo, pero que sólo se pone cuatro o más líneas de comentarios continuos y maneja líneas de comentarios en blanco (solo // y nada más sin contenido).

Cuestiones relacionadas