Russian Qt Forum
Май 21, 2024, 16:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите разобраться с QRegExp  (Прочитано 2535 раз)
vmprog
Гость
« : Июнь 29, 2010, 18:55 »

Есть вот такая строка: QRegExp rx_href("href=\"([^\"]*)\"");
Не могу разобраться как она работает. То, что ищет строку начинающуюся на href=\ это понятно, но вот что дальше мне не понятно:(
Что означают:
([^\"]*)
\""

Спасибо.
Записан
SimpleSunny
Гость
« Ответ #1 : Июнь 29, 2010, 19:02 »

\" кавычка экранируется, так как в с++ у нее особое значение
([^\"]*) вывести именно ссылку. Если грубо, то любой текст, который не заканчивается на "
Записан
vmprog
Гость
« Ответ #2 : Июнь 29, 2010, 19:50 »

Объясните если не трудно. Что ограничивается круглыми скобками (), а что []?
Как я понимаю \ экранирует символ стоящий справа от этой косой. Те если я вижу \\ значит ищется именно косая черта.
« Последнее редактирование: Июнь 29, 2010, 19:53 от vmprog » Записан
SimpleSunny
Гость
« Ответ #3 : Июнь 29, 2010, 20:39 »

Да, \ экранирует символ справа. \\ - одна черточка, \\\\ - 2 черточки. Так как в regexp у \ тоже свой особый смысл, то для поиска косой черты применяют \\\\.

[] - любой символ из перечисленных в скобках ([0-9],[abc]) или не перечисленных ([^0-9] все символы кроме цифр).

() - используют для группировки элементов и их "захвата".
К примеру необходимо разобрать номер телефона в таком формате 068-4434343
QRegExp r("([0-9]*)-([0-9]*)");
r.indexIn("068-4434343");
r.cap(1); //код оператора
r.cap(2); //сам номер
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.057 секунд. Запросов: 21.