2009-10-14 8 views
8

Je commence à travailler sur une grande solution Visual Studio et j'ai rencontré des zones contenant de gros blocs de code commentés. Les blocs ont habituellement plus de 3 lignes de longueur, et tout commence par // (probablement Ctrl + K, C a été utilisé pour commenter). Je voudrais essayer de trouver tous les endroits où ils existent dans ma solution afin que notre équipe puisse les traiter, et les supprimer s'ils ne sont plus nécessaires (après tout, nous utilisons un contrôle de code source correct et pouvons toujours revenir dans histoire de voir l'ancien code!). Donc, je suis intéressé par les blocs de code commentés qui couvrent plus de 3 lignes consécutives (et je ne veux pas avoir beaucoup de faux positifs pour les commentaires de la documentation XML non plus). Quelle expression régulière puis-je utiliser dans la boîte de dialogue de recherche de Visual Studio pour rechercher ces blocs? J'ai essayé ce qui suit, mais il ne semble pas fonctionner:Expression régulière Visual Studio pour trouver des blocs de code commentés

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

Je ne cherche pas à faire une trouvaille et remplacer - il suffit de les trouver et nous les regardons avant de supprimer le code si ce n'est plus nécessaire.

Merci!

+0

Pourriez-vous publier votre regex en tant que 'code' (indenter avec quatre espaces)? Maintenant, les '*' 'sont "mangés" comme des balises * italic *. –

+0

+1 Pour signaler que l'ancien code doit être supprimé, pas commenté. Comme vous l'avez dit, le système de contrôle de version peut vous renvoyer ce code si nécessaire. – Philippe

Répondre

4

Essayez celui-ci:

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

Works pour moi.

+0

Fonctionne bien - merci! –

6

Les autres réponses ne fonctionnaient pas pour moi dans Visual Studio 2012 (je ne sais pas si quelque chose a changé). Ce qui suit fait:

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

Cela a fonctionné dans VS2012 pour moi aussi. – nzduck

1

Essayez celui-ci sur la taille:

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

En fait, ce qui fonctionne le mieux pour moi jusqu'à présent:

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

Il est long, mais il ne reçoit que quatre ou lignes de commentaire plus continues et gère les lignes de commentaires vides (juste // et rien d'autre pas de contenu).

Questions connexes