Регулярка, чтобы убрать комментарии PHP

Тема в разделе "Регулярные выражения", создана пользователем kos1986, 29 июн 2011.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. kos1986

    kos1986 Постоялец

    Регистр.:
    29 окт 2007
    Сообщения:
    118
    Симпатии:
    61
    Какой регуляркой можно убрать все комментарии в php?

    Я прогоняю сначала такой: /\*.*?\*/|//.*?\n|#.*?\n
    А потом такой: @(//+([^\n]*?\n))@se
    Не знаю, как их объединить.

    Но, если нарвется, например, на такой участок:
    preg_replace("|/*(.+?)/*$|".... - снесет половину кода:)

    Есть ли какой-нибудь универсальный способ?
     
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    php_strip_whitespace
     
    kos1986 нравится это.
  3. kos1986

    kos1986 Постоялец

    Регистр.:
    29 окт 2007
    Сообщения:
    118
    Симпатии:
    61
    Ну это только, если из php:)

    А если это нужно для сравнения файлов, напримеро git-ом?
    Нужно, чтобы комментарии не сравнивались, а убрать их можно только регуляркой:)
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    А если прочитать внимательно название собственного топика? ты писал про php, тебе ответили про php. Может тебе еще формулу вечной молодости тут вывести? :D
     
  5. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Ну тут вообще то раздел посвященный пхп, а вообще в чем проблема
    напишите простой скрипт который будет брать два файла удалять коментарии и сравнивать результат.

    А функцию вам имхо правильную посоветовали, вот тут
    http://ru2.php.net/manual/en/function.php-strip-whitespace.php
    еще примеры довольно поучительны...
     
  6. kos1986

    kos1986 Постоялец

    Регистр.:
    29 окт 2007
    Сообщения:
    118
    Симпатии:
    61
    Я внимательну прочитал свою тему - я спрашиваю про регулярное выражение, которое можно использовать для удаления комментариев.

    Вы не пользуетесь программами сравнения файлов? Так вот, любая такая программа (ExamDiff, Araxis Merge и т.д.)позволяет задать регулярку для игнорирования определенных строк - мне нужно игнорировать комментарии файлов php при сравнении.

    В этом разделе обсуждается и инструментарий, не думаю, что я написал не туда, если нет, извините.

    А функция правильная, я не же спорю.
     
  7. kokoulin

    kokoulin Постоялец

    Регистр.:
    1 дек 2010
    Сообщения:
    57
    Симпатии:
    3
    ну так и делайте
    $text0 = preg_replace("/(\<br\>)/", "", $text1);
    $text1 = preg_replace("/(\<br\>)/", "", $text2);
    или вы хотите регулярку для софта какого то?
     
Статус темы:
Закрыта.