Мне нужно извлечь однострочные комментарии из файла проекта qmake
. Правила просты: комментарий начинается с символа #
и начинается с разрыва строки \n
. Так что я прочитал некоторые документы о QRegExp
, и писать такой код, чтобы напечатать все комментарии в QMAKE файле:QRegExp для извлечения комментариев одной строки из кода
QRegExp re ("#(.*)\n$");
re.setMinimal (true);
int comment_index = 0;
while ((comment_index = _project_contents.indexOf (comment_expr, comment_index)) != -1)
{
QString comment_text = comment_expr.cap (0);
qDebug() << "Comment 1" << comment_text;
}
Но это не работает правильно - только все содержимое файла проекта было напечатано. Где моя ошибка? как я понимаю из документов, это должно работать, но это не так.
P.S. Я новичок в регулярных выражениях, поэтому, пожалуйста, не бить меня :)
Спасибо! Последняя версия вашего регулярного выражения - это то, что мне нужно. Кстати, можете ли вы предложить несколько хороших примеров/книг о 'QRegExp'? Мне нужно глубоко раскрыть их из-за интенсивного использования. – eraxillan
У меня нет никаких обязательных рекомендаций. Regex следует стандартным синтаксисом (с некоторыми незначительными вариациями), поэтому любой учебник должен быть в порядке. [Это (для QT)] (http://harmattan-dev.nokia.com/docs/library/html/qt4/qregexp.html#details) содержит введение и рекомендует «Освоение регулярных выражений (третье издание) Джеффри EF Friedl ". [Здесь также есть сайт, на который я иногда ссылаюсь) (http://www.regular-expressions.info/). Или вы можете просто проверить несколько [этих] (https://www.google.com/search?q=introduction+to+regular+expressions). – Dukeling
Еще раз спасибо, я увижу эти материалы. P.S. Я надеюсь, что я никогда не буду вынужден анализировать HTML с помощью регулярных выражений :) – eraxillan