Вопрос
У меня есть регулярное выражение формата PCRE: <a\s*href=\"([^<]*)\"([^<]*)\((.*?)\)\">
но я не могу использовать его в QT, как я могу конвертировать его в формат QRegexp, чтобы заставить его работать в QT.
Спасибо
Решение
Ты пробовал чтение документации?В частности, раздел «Заметки для пользователей Perl»?Кажется, это должно быть довольно просто:
QRegExp regex( "<a\\s*href=\\"([^<]*)\\"([^<]*)\\((.*?)\\)\\">",
Qt::CaseSensitive, QRegExp:: RegExp2 );
Обратите внимание, что все, что я там сделал, — это удвоил обратную косую черту, поскольку C «съедает» ее при интерпретации кода.Однако я сомневаюсь, что вы хотели, чтобы кавычки были разделены двойной обратной косой чертой, поэтому, возможно, это больше похоже на то, что вы хотели:
QRegExp regex( "<a\\s*href=\"([^<]*)\"([^<]*)\\((.*?)\\)\">",
Qt::CaseSensitive, QRegExp:: RegExp2 );
Я также не знаю, почему вы пытаетесь сопоставить три кавычки в выражении, но это выходит за рамки того, что вы спросили.