Russian Qt Forum

Qt => Общие вопросы => Тема начата: mike_price от Сентябрь 22, 2010, 02:13



Название: QRegExp
Отправлено: mike_price от Сентябрь 22, 2010, 02:13
Задача следующая: есть текст. найти в нём слова с максимально длинной подстрокой согласных букв.
слова состоят из латиницы и цифр, всё остальное - разделяющие символы.

текст я правильно перевёл в QStringList, без разделяющих знаков.
а вот как найти макс. подстроку согласных не знаю.
может в этом помочь RegExp?


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


Название: Re: QRegExp
Отправлено: mike_price от Сентябрь 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.


Название: Re: QRegExp
Отправлено: SimpleSunny от Сентябрь 23, 2010, 02:04
В QStringList хранится список слов?