Ce problème est plus difficile qu'il n'y paraît à première vue, puisque vous devez considérer les jetons de commentaires dans les chaînes, les jetons de commentaires qui sont eux-mêmes commentées, etc.
J'ai écrit une enchaînez et commentez l'analyseur pour C#, laissez-moi voir si je peux creuser quelque chose qui aidera ... Je mettrai à jour si je trouve quelque chose.
EDIT: ... ok, donc j'ai trouvé mon ancien projet 'codemasker'. Il s'avère que j'ai fait cela par étapes, pas avec une seule regex. Fondamentalement je pouce à travers un fichier source à la recherche de jetons de départ, quand j'en trouve un, je cherche ensuite un jeton de fin et masque tout entre les deux. Ceci prend en compte le contexte du jeton de départ ... si vous trouvez un jeton pour "début de chaîne", vous pouvez ignorer les jetons de commentaire jusqu'à ce que vous trouviez la fin de la chaîne, et vice versa. Une fois que le code est masqué (j'ai utilisé des guids comme masques, et une hashtable pour garder la trace), vous pouvez effectuer votre recherche et le remplacer en toute sécurité, puis restaurer le code masqué.
Espérons que cela aide.
Ce lien FAQ est mort. Je pense qu'il a déménagé [ici] (http://perldoc.perl.org/perlfaq6.html#How-do-I-use-a-regular-expression-to-strip-C-style-comments-from-a -file% 3f) –
@Matt Mendell: merci. J'ai mis à jour le lien – jfs