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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRegExp  (Прочитано 2693 раз)
mike_price
Гость
« : Сентябрь 22, 2010, 02:13 »

Задача следующая: есть текст. найти в нём слова с максимально длинной подстрокой согласных букв.
слова состоят из латиницы и цифр, всё остальное - разделяющие символы.

текст я правильно перевёл в QStringList, без разделяющих знаков.
а вот как найти макс. подстроку согласных не знаю.
может в этом помочь RegExp?
Записан
Marat(Qt)
Гость
« Ответ #1 : Сентябрь 22, 2010, 13:18 »

Ну можно взять исходную строку и искать в ней что-то типа [A-Za-z0-9]*[BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz]{x,x}[A-Za-z0-9]* где x(тот что в фигурных скобках) - количество согласных, поиск повторять до тех пор, пока он что-то находит(увеличивая x на каждой итерации), допустим он нашел подслово при x=4 и ничего не нашел при x=5, тогда смело повторяем поиск с x=4 и найденное слово - наш результат. как-то так.
« Последнее редактирование: Сентябрь 22, 2010, 13:20 от Marat(Qt) » Записан
mike_price
Гость
« Ответ #2 : Сентябрь 23, 2010, 00:38 »

Ну можно взять исходную строку и искать в ней что-то типа [A-Za-z0-9]*[BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz]{x,x}[A-Za-z0-9]* где x(тот что в фигурных скобках) - количество согласных, поиск повторять до тех пор, пока он что-то находит(увеличивая x на каждой итерации), допустим он нашел подслово при x=4 и ничего не нашел при x=5, тогда смело повторяем поиск с x=4 и найденное слово - наш результат. как-то так.

этот RegExp не универсальный и не правильно сработает при словах типа atatttat.
Записан
SimpleSunny
Гость
« Ответ #3 : Сентябрь 23, 2010, 02:04 »

В QStringList хранится список слов?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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