Russian Qt Forum

Qt => Общие вопросы => Тема начата: Gmord от Октябрь 02, 2009, 16:14



Название: И снова QRegExp
Отправлено: Gmord от Октябрь 02, 2009, 16:14
Прекрасно понимаю, что тема регулярных выражений не нова, но всё же вынужден просить вашей помощи...

Возникла проблема в написании QRegExp такого, чтобы находил содержание переменной str, обрамлённое справа и слева любыми разделителями (плюс начало и конец строки). Не совсем понятно, как осуществить передачу значения из переменной в QregExp. Везде находил только составление статичных шаблонов подстроки.

Заранее благодарен.


Название: Re: И снова QRegExp
Отправлено: SimpleSunny от Октябрь 02, 2009, 16:30
QRegExp regexp;
regexp.indexIn("my string");
Это?

+ не совсем понятно что ищешь. Приведи пример текста.


Название: Re: И снова QRegExp
Отправлено: Gmord от Октябрь 02, 2009, 16:50
К примеру наш текст: "qwe asd qwedv qwe toy"
А заменить в нём надо слово только слово "qwe" (не трогая вхождение "qwe" в слово "qwedv"). Слово "qwe" лежит в переменной str. Выходит, надо так составить QRegExp, чтобы мы получили шаблон значения этой переменной, справа и слева которой стоят разделители.


Название: Re: И снова QRegExp
Отправлено: SimpleSunny от Октябрь 02, 2009, 17:02
Динамический шаблон сделать не проблема
QString pattern("\b%1\b");
pattern = pattern.arg("my string");

Любой разделитель - это сильно. В зависимости от перечня символов, которые считаются словом, и необходимо строить regexp. Почитай документацию по QRegExp и обрати внимание на \w \W \b \B.