Шаблон QRegExp для URL

Я пытаюсь сопоставить URL-адреса Google из некоторого текста, который хранится в переменной, используя шаблон ниже.

URL используют двойные кавычки

QRegExp regExp;
regExp.setPattern("http://www.google.com/(.*)");

Мне удается сопоставить URL, но он неожиданно совпадает со всем текстом, который содержится после него. Я пробовал использовать похожие варианты, подобные приведенным ниже, но, похоже, они не работают.

regExp.setPattern("http://www.google.com/(.*)\"is");
regExp.setPattern("http://www.google.com/^(.*)$\"");

Любая помощь, чтобы получить регулярное выражение, которое соответствует только URL-адресу.

заранее спасибо

1

Решение

Несмотря на то, что мы не можем знать, что находится вокруг URL в вашем тексте (кавычки? Круглые скобки? Пробелы?), Мы можем создать лучшее регулярное выражение, пытаясь выполнить отрицательное совпадение символов, которые не могут быть частью URL :

QRegExp regExp;
regExp.setPattern("http://www.google.com/([^()\"' ]*)");

Тогда вам просто нужно добавить больше возможных символов в этот класс отрицательных символов.

0

Другие решения

Есть ли причина, по которой вам нужно / хотите использовать QRegExp?

Вы могли бы использовать QUrl, скорее всего.

1