LINUX.ORG.RU

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

abcq ★★
()
Ответ на: комментарий от bhfq

QRegExp rx("url.*?href);

А что тут экранировать, он из-за знака вопроса не работает. Если его убрать, то делает, но мне надо нежадный вариант регулярки.

dibr0v72
() автор топика
Ответ на: комментарий от dibr0v72

QRegExp не поддерживает ленивую квантификацию. Если для всего выражение нужно, то setMinimal(true)

Stack77
()

QRegExp депрекейтнут, вместо него QRegularExpression

CrackedMind
()
Ответ на: комментарий от dibr0v72

А зачем тебе знак вопроса? .*? равно .*
Если же надо еще прихватить и url, то тогда все надо или сгруппировать или использовать ретроспективную проверку:

'urlabcdhref' -match '(url.*)?href'
True

'href' -match '(url.*)?href'
True

'url12345href' -match '(?<=^url).*href'
True

'12345href' -match '(?<=^url).*href'
False
anonymous
()

Используй строковые литералы c++. QRegExp rx(R"(url.*?href=""(\\S+)"".title=""(.*?)\\s-)");. Я добавил R"()". Саму регулярку не смотрел.

anonymous
()
Ответ на: комментарий от anonymous

\S

Тогда здесь нужна одна косая черта. Я прошляпил этот момент.

anonymous
()

Потренируйся писать регулярки в консоли браузера. У них синтаксис везде примерно одинаковый (но есть различия, напимер, поддержка lookebehind и т.п.)

[...'<a href="https://www.google.com/">Google</a> <a href="https://ya.ru/">yandex</a>'.matchAll(/\bhref\s*=\s*"([^"]+)"/g)].map(m => m[1])
(2) ["https://www.google.com/", "https://ya.ru/"]
tz4678 ★★
()

"aa""bb""cc" преобразуется в aabbcc, а не aa"bb"cc. Кавычки экранируются через \"

anonymous
()
Ответ на: комментарий от dibr0v72

Даже так не работает:

QRegExp rx("url.*?href);



Надеюсь, что ты просто опечатался.

QRegExp rx("url.*?href");

Xintrea ★★★★★
()

Вам нужно заменить некоторые символы. Или погуглите …

Владимир

anonymous
()
Ответ на: комментарий от tz4678

Нужно жить нашенским, дышать этим. Постоянно развиваться …

Владимир

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.