+ Reply to Thread
Results 1 to 4 of 4

Thread: RegEx Boost

  1. #1
    ximera's Avatar

    Exclamation RegEx Boost

    Всем доброго времени суток. У меня тут проблема с регуляркой, во время выполнения ругается. А как по другому переписать я пока не разобрался, мож кто стыкался?

    RegEx
    Code:
    const boost::regex e("^\/\*[\s\S]*?\*\/|^\/\/");
    Вывод:
    Code:
    terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::regex_error> >'
      what():  Invalid preceding regular expression prior to repetition operator.  The error occured while parsing the regular expression: '^/*[sS]*?*>>>HERE>>>/|^//'.
    Last edited by ximera; 28-09-2012 at 08:31.
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  2. #2
    root's Avatar

    Default Re: RegEx Boost

    Перед тем как выкладывать регулярку, нужно хотя бы описать, что она делает. А еще лучше привести пример, того на что она заточена...

    У тебя как минимум не хватает экранирования слэшей:

    Это:
    Code:
    const boost::regex e("^\/\*[\s\S]*?\*\/|^\/\/");
    Заменить на это:
    Code:
    const boost::regex e("^\\/\\*[\\s\\S]*?\\*\\/|^\\/\\/");
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

  3. #3
    ximera's Avatar

    Default Re: RegEx Boost

    Она ищет строки с комментариями в *.cpp файле. Только те в которых есть комментарии, если есть код, а за ним комментарий, то она пропускает.
    Ищет как однострочные комментарии

    Code:
    // Comment
    так и много строчные комментарии

    Code:
    /* 
    bla 
    bla 
    bla 
    */
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  4. #4
    root's Avatar

    Default Re: RegEx Boost

    Она ищет строки с комментариями в *.cpp файле. Только те в которых есть комментарии, если есть код, а за ним комментарий, то она пропускает.
    Вот так бы сразу =) Ты почти угадал. Для тебя подойдет вот эта регулярка:

    Code:
    "/\\*[\\s\\S]*?\\*/|//.*"
    Я тебе когда-то давал программулинку RegexBuddy - вот в ней надо тренироваться регулярки составлять ;)
    Last edited by root; 28-09-2012 at 18:03.
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

  5. Пользователь сказал cпасибо:
    ximera (28-09-2012)
+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:34
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org