Вопрос

У меня есть регулярное выражение формата 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 );

Я также не знаю, почему вы пытаетесь сопоставить три кавычки в выражении, но это выходит за рамки того, что вы спросили.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top