Регулярное выражение для соответствия конкретных комментариев в коде - PullRequest
0 голосов
/ 29 октября 2009

Есть ли специалисты по регулярным выражениям, которые могут помочь мне очистить следующий исходный код? Я просматриваю некоторый существующий код и вижу несколько примеров, похожих на следующие:

public enum Numbers
{
    /// <summary>
    /// One = 1, 
    /// </summary>
    One = 1,

    /// <summary>
    /// Two = 2, 
    /// </summary>
    Two = 2,

    /// <summary>
    /// Three = 3, 
    /// </summary>
    Three = 3,

    /// <summary>
    /// Four = 4 but don't use this because it will break everything, 
    /// </summary>
    Four = 4,
}

Если кто-то не скажет мне, что комментарии для 1-3 необходимы, я бы хотел найти / заменить (удалить) все комментарии, которые не добавляют никакой ценности коду. Просматривая код, я думаю, можно с уверенностью предположить, что любая строка, похожая на «/// word = number», может быть заменена. Вычистил, я думаю, это должно выглядеть так:

public enum Numbers
{
    One = 1,
    Two = 2,
    Three = 3,

    /// <summary>
    /// Four = 4 but don't use this because it will break everything, 
    /// </summary>
    Four = 4,
}

Ваша помощь очень ценится! И помогая мне, вы действительно помогаете себе. Потому что, кто знает, может быть, когда-нибудь ты поддержишь этот код!

Ответы [ 3 ]

2 голосов
/ 29 октября 2009

С VS2008 FindAndReplace я попробовал это и сработало;

Найти что:

/// \<summary\>.*\n.*\=:b:d[:b,]*\n.*\<\/summary\>\n

Заменить на:

(empty)

Использование:

Регулярные выражения

2 голосов
/ 29 октября 2009

Вот Perl-скрипт, который удалит такие комментарии:

my $text = join "", <>;
$text =~ s{///\s+<summary>\s+///\s+\w+\s+=\s+\d+,\s+///\s+</summary>}{}g;
print $text;
0 голосов
/ 29 октября 2009

Вы работаете над Unix-подобной ОС или у вас есть Cygwin?

Я никогда не выполнял многострочное сопоставление с регулярным выражением, но есть ссылка на использование sed для этого ...

http://www.ilfilosofo.com/blog/2008/04/26/sed-multi-line-search-and-replace/

Я прочитаю и отредактирую этот ответ позже, чтобы применить его к вашей проблеме. Или, может быть, кто-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...