Russian Qt Forum

Qt => Общие вопросы => Тема начата: pablo от Март 14, 2005, 19:30



Название: Поиск слова
Отправлено: pablo от Март 14, 2005, 19:30
Проблема такая:
Надо найти из строки QString определённое слово, т.е не как подсткоку, а слово целиком.
Игнорируя знаки препинания.
Если просто пробовать QString::find то он мне находит только подстроку, а не слово.

Может у вас есть какие нибудь идеи как это реализовать ?


Название: Поиск слова
Отправлено: Zigmar от Март 14, 2005, 22:25
А чем слово отличается от подстроки?


Название: Поиск слова
Отправлено: d_n_k от Март 14, 2005, 23:14
ищешь подстроку, проверяешь по краям на наличие букв(или разделетелей).

еще нужно проверить что в сомой подстроке не было разделителей


Название: Поиск слова
Отправлено: Perchilla от Март 14, 2005, 23:45
Делай поиск через регулярное выражение
Код:
int i = string.find( QRegExp("\Wслово\W"), 0 );


так, примерно, насколько я могу судить, если тут с перлом расхождений нет...


Название: Поиск слова
Отправлено: Zigmar от Март 15, 2005, 01:20
А, сорри, не понял вопроса. Слова искать - это regexp:
Код:

\bword\b

\b - это признак границы слова, а не конкретный символ. За подробностями, см. доки по регэкспам, например в том-же Qt.

А вышеупомянутый "\Wслово\W" не будет работать, если слово в начали или в конце строки.