Удаление комментариев с помощью Perl - PullRequest
2 голосов
/ 10 апреля 2010

Что-то, что я продолжаю делать, - это удаление комментариев из файла при его обработке. Мне было интересно, если есть модуль для этого.

Код, который я продолжаю писать снова и снова:

    while(<>) {
        s/#.*// ;
        next if /^ \s+ $/x ;

        **** do something useful here ****
    }

Редактировать Просто чтобы уточнить, ввод не Perl. Это мой собственный текстовый файл, в котором могут быть данные, которые я так или иначе хочу обработать. Я хочу разместить комментарии, которые игнорируются моими программами

Ответы [ 2 ]

5 голосов
/ 10 апреля 2010

Если это не опыт обучения, я предлагаю вам использовать Regexp :: Common :: comment вместо написания собственных регулярных выражений.

Он поддерживает довольно много языков.

3 голосов
/ 10 апреля 2010

Вопрос не проясняет, к какому типу файлов это относится. Мы имеем дело с исходными файлами Perl? Если это так, ваш подход не совсем корректен - см. Комментарий gbacon. Как известно, исходные файлы Perl трудно (невозможно?) Проанализировать с помощью регулярных выражений. В этом случае, или если вам нужно работать с несколькими типами файлов, используйте Regexp :: Common :: comment, как предложено Niffle. В противном случае, если вы считаете, что ваша логика регулярных выражений верна для вашего сценария, то я лично предпочитаю написать это явно, это всего лишь пара простых строк, мало что можно получить с помощью модуля (и вы вводите зависимость).

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