Суть проблемы: Написал я регулярное выражение, которое ищет '{' и оглядывается назад, чтобы посмотреть, нет ли там признака коментариев, и когда оно находит данный символ, которому не предшествует коментарий, оно заменяет его на другую последовательность символов. Но увы, оно не работает уже который час. Будьте добры, друзья, подскажите, где ошибся:
while (start >= 0 && end >=0) {
start = text.indexOf("\n", start);
end = text.indexOf(QRegExp("^.*[{](?!=[//]|[/*]|[*]))"),start);
end2 = text.indexOf(QRegExp("^.*[}](?!=[//]|[/*]|[*]))"), start);
if (end < end2) {
text.replace(end,"\n{\n");
}
else text.replace(end2,"\n}\n");
++start;
}
допустим есть текст, вида:
//dfsdkfj ksjdfksjdf { <- этот символ должен быть пропущен
public SystemBlock()
{ <- этот должен быть найден
this.producer = "none";
this.motherBoard = "none";
this.processor = "none";
this.ram = "none";
this.gpu = "none";
this.price = 0;
this.eventSupport = null;
}
Не думаю, что у Вас получится сделать это с регулярными выражениями, т.к. PCRE не поддерживает negative lookbehind произвольного размера, а как по другому тут сделать не совсем понятно. С другой стороны, Ваша задача решается элементарно другим способом: Вы разделяете текст на строки и в каждой строке ищете {
, если находите, то ищете в этой строке //
(или другой символ комментариев): если есть, значит пропускаете, если нет — заменяете.
Виртуальный выделенный сервер (VDS) становится отличным выбором
ЗдравствуйтеМне нужно определить аргументы командной строки и исходя из полученых команд проделать некие действия
Есть класс, в котором есть поле вектора из unique_ptr (Animals - тоже класс), а так же методы чтения и записи в файл этого вектора классаВот фрагмент...
У меня никак не получается остановить работу демона, что я и пытаюсь сделать с помощью параметра stopПодскажите, как лучше это сделать? И почему...
Здравствуйте! Пишу простой проводник и столкнулся с такой библиотекойВопрос такой: для написания проводника ею лучше пользоваться? И для...