Название: Все тотже QRegExp Отправлено: zodiac от Сентябрь 21, 2007, 13:13 qqq ="ааа [345.56] sdads [123.45] dfsd [565.56]
Есть код: QRegExp rx("\\[(.*)\\]"); int pos = rx.indexIn(str); if (pos > -1) { return rx.cap(1); } Но почему-то он возвращает только так: "345.56] sdads [123.45] dfsd [565.56", а мне нужно только число в []. т.е. например: 345,56, 123,45..... Название: Re: Все тотже QRegExp Отправлено: Tonal от Сентябрь 21, 2007, 16:44 QRegExp rx("\\[([^\]]*)\\]");
Или можно явно перечислить допустимые символы которые ты ожидаешь встретить. Вот для чисел с точкой: QRegExp rx("\\[([\d.]*)\\]"); Название: Re: Все тотже QRegExp Отправлено: zodiac от Сентябрь 21, 2007, 17:02 Спасибо. rx.cap(1) возвращает значение из первых скобок, но rx.cap(2) не возвращает ничего. Как тогда брать значение из вторых...n-ых скобок?
Название: Re: Все тотже QRegExp Отправлено: Tonal от Сентябрь 21, 2007, 17:15 Открой в ассистенте QRegExp::indexIn
В примере ++count замени на rx.cap(1) Название: Re: Все тотже QRegExp Отправлено: zodiac от Сентябрь 21, 2007, 17:26 Что-то не понял на что заменить и что именно :/
str = "qwerty [24.453] qwer: [324.12] rewq: [212.12]"; QRegExp rx("\\[([\\d.]*)\\]"); int pos = rx.indexIn(str); if (pos > -1) { return rx.cap(1); } как быть в данном случае? Название: Re: Все тотже QRegExp Отправлено: zodiac от Сентябрь 21, 2007, 17:27 Все, мысль понял. Реализовал почти :)
|