Russian Qt Forum

Qt => Общие вопросы => Тема начата: ieroglif от Март 11, 2011, 02:28



Название: QRegExp экранирование
Отправлено: ieroglif от Март 11, 2011, 02:28
мне надо заюзать много регулрок. по этому поводу написал себе банальный QRegExpChecker - окно для ввода обрабатываемого текста, строка для ввода регулярки, кнопка для запуска и окно для вывода результатов.
написал там длинный регексп, он работает.
#(\d+)[^\(]+\((\d+)\)[^\-]+\-\s(\d{2,5}\/\d{2,10})\s\-[^\-]+\-\s(.{8})\s[^\-]+\-\s(.{10})
вписываю его в код - не работает.
догадываюсь что проблема в экранировании, начинаю экранировать, получаю вот такое:
\\#(\\d+)[^\\(]+\\((\\d+)\\)[^\\-]+\\-\\s(\\d{2,5}\\/\\d{2,10})\\s\\-[^\\-]+\\-\\s(.{8})\\s[^\\-]+\\-\\s(.{10})
всё равно не работает - но начинают ловить rx.cap(1)
обижаюсь, вытаскиваю rx.pattern() - он полностью аналогичен разработанному - вставляю его в свой чекер - он там работает.
так в чём косяк?


Название: Re: QRegExp экранирование
Отправлено: sne от Март 11, 2011, 09:26
одновременно с регуляркой неплохо бы давать и блок текста на котором он должен работать, не находишь)?


Название: Re: QRegExp экранирование
Отправлено: ieroglif от Март 11, 2011, 10:56
одновременно с регуляркой неплохо бы давать и блок текста на котором он должен работать, не находишь)?
туплю, сори =)

Full Tilt Poker Game #28534297400: 250 Play Money Sit & Go (221921734), Table 1 - 15/30 - No Limit Hold'em - 00:29:05 ET - 2011/02/26

вытаскиваю подстроки выделенные жирным


Название: Re: QRegExp экранирование
Отправлено: ieroglif от Март 13, 2011, 18:11
апну тему..
вопрос пока ещё не решился  ???


Название: Re: QRegExp экранирование
Отправлено: ieroglif от Март 13, 2011, 21:28
извиняюсь за дистёрб :)
всё решилось заменой
resultStringList << rx.cap(1)
на
resultStringList << rx.capturedTexts()
:)
был готов уже ап стену биться :)


Название: Re: QRegExp экранирование
Отправлено: fedotok от Май 10, 2014, 14:41
Помогите не пойму как экранировать кавычку " , чтобы не ругалася QT
Хочу вытащить адреса ссылок, регулярка вот такая <a\\s+href\\s*=\\s*[^<>]*\\s*>[^<>]*</a>
а хочу ее преобразовать в такую <a\\s+href\\s*=\\s+"([^<>])"\\s*([^<>])\\s*>[^<>]*</a> чтобы вытащить сам url между " "

разобрался "<a\\s+href\\s*=\\s*\\\"([^<>])\\\"\\s*[^<>]*\\s*>[^<>]*</a>"