Я пытаюсь сопоставить 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-адресу.
заранее спасибо
Несмотря на то, что мы не можем знать, что находится вокруг URL в вашем тексте (кавычки? Круглые скобки? Пробелы?), Мы можем создать лучшее регулярное выражение, пытаясь выполнить отрицательное совпадение символов, которые не могут быть частью URL :
QRegExp regExp;
regExp.setPattern("http://www.google.com/([^()\"' ]*)");
Тогда вам просто нужно добавить больше возможных символов в этот класс отрицательных символов.
Есть ли причина, по которой вам нужно / хотите использовать QRegExp?
Вы могли бы использовать QUrl, скорее всего.