Здравствуйте, гость ( Вход | Регистрация )
AD | Дата 10.9.2008, 15:30 |
Извините, забыл сразу выложить код, как я реализовал. Вот сейчас выкладываю: source
Регэксп rx - это регэксп, который определяет те последовательности символов, которые следует оставить. Ну а далее, путем сравнений - это реализовано! |
|
Litkevich Yuriy | Дата 1.9.2008, 16:34 |
, а все сотальные, удовлетворяющие заданному регулярному выражению, затирает ЗАТИРАЕТ? наверное правильнее сказать не возвращает. тебе надо указатель дальше двигать по тексту, типа этого rx.indexIn(text, pos) |
|
AD | Дата 1.9.2008, 15:57 |
Практически сделал, осталось добиться последнего. Чтобы в строке подобного рода выражения [\\d.]+[WC]?_O(N|FF)\\b можно было встретить большое количество раз. А то, он вырезает только первое подобное выражение из строки, а все сотальные, удовлетворяющие заданному регулярному выражению, затирает. |
|
Tonal | Дата 1.9.2008, 13:31 |
Ты опять криво выразился. Прочитай что-нибудь про регэкспы. В регулярном выражении существует понятие класса символов. На принадлежность или непринадлежность какому-нибудь классу символ можно тестировать. А вот принадлежность символа какому-нибудь произвольному регэкспу не определена. Например символ W и принадлпжит или нет в зависимости от того, какие символы его окружают. Можно тестировать строку на совпадение с регуляркой, но опять же например сторока C_ON с ней не совпадёт. Тут всё опять зависит от того, что ты хочешь сделать. Если таки убрать из текста всё лишнее, как описывал, то алгоритм я тебе уже нарисовал. Правда т.к. в QRegExp нет findall, придётся выписать цикл явно (см. пример к "Capturing Text"). П.С. Есть ещё позитивный и негативный предпросмотр, но с ним лучше не связываться, пока не разобрался нормально. |
|
AD | Дата 1.9.2008, 12:51 |
Что такое "последовательность символов, не принадлежащую заданной"? Я опять объяснил криво, видимо. Простите. Я имел в виду с помощью регэкспа найти символы, не принадлежащие выражению [\d.]+[WC]?_O(N|FF)\b. |
|
Tonal | Дата 1.9.2008, 12:48 |
Что такое "последовательность символов, не принадлежащую заданной"? | |
Litkevich Yuriy | Дата 1.9.2008, 12:45 |
AD, всмысле инверсии чтоли? если да, то так [^...] где многоточие - Р.В. которое надо исключить |
|
AD | Дата 1.9.2008, 12:38 |
небольшой вопрос. А как сделать с помощью регэкспа, чтобы он находил любую последовательность символов, не принадлежащую заданной? | |
AD | Дата 30.8.2008, 13:38 |
1) Составляем выражение, которое найдёт последовательность символов которую нужно оставить: [\d.]+[WC]?_O(N|FF)\b Кстати, минус у чисел может быть? И ещё куда-то нужно запятую присобачить - из примера не видно. 2) Создаём QRegExp с этим выражением. 3) Для исходной строки ищем все вхождения и собираем из них выходящую строку. Вот реализация на python-е:
Думаю перевести на С++ труда не составит? П.С. Приведённое выражение поймает и такую последовательность: 1.2.3.4.5._ON Непонятно нужно ли с этим бороться... Спасибо! Либо точка, либо запятая. Приведенное выражение вполне правильное! Знаков минус быть не может. |
|
Tonal | Дата 30.8.2008, 0:08 |
1) Составляем выражение, которое найдёт последовательность символов которую нужно оставить: [\d.]+[WC]?_O(N|FF)\b Кстати, минус у чисел может быть? И ещё куда-то нужно запятую присобачить - из примера не видно. 2) Создаём QRegExp с этим выражением. 3) Для исходной строки ищем все вхождения и собираем из них выходящую строку. Вот реализация на python-е:
Думаю перевести на С++ труда не составит? П.С. Приведённое выражение поймает и такую последовательность: 1.2.3.4.5._ON Непонятно нужно ли с этим бороться... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 0:14 |