Это более сложная проблема, чем может показаться на первый взгляд, поскольку вам необходимо учитывать токены комментариев внутри строк, токены комментариев, которые сами закомментированы и т. Д.
Я написал анализатор строк и комментариев для C #, дайте мне посмотреть, смогу ли я найти что-то, что поможет ... Я обновлю, если найду что-нибудь.
EDIT:
... хорошо, так что я нашел свой старый проект 'codemasker'. Оказывается, я делал это поэтапно, а не с помощью одного регулярного выражения. Обычно я просматриваю исходный файл в поисках начальных токенов, а затем нахожу один, затем ищу конечный токен и маскирую все промежуточное. При этом учитывается контекст стартового токена ... если вы найдете токен для «начала строки», то вы можете спокойно игнорировать токены комментариев, пока не найдете конец строки, и наоборот. Как только код замаскирован (я использовал направляющие как маски и хеш-таблицу для отслеживания), вы можете безопасно выполнить поиск и замену, а затем, наконец, восстановить замаскированный код.
Надеюсь, это поможет.