Титла: QRegExp (sed) помощ Публикувано от: LinuxFanUNIX в Aug 27, 2010, 01:13 Добър вечер (то е нощ де, но както и да е).
Та на проблема: Имам следния стринг: ala-bala обаче искам през QRegExp да го направя така: <b> ala-bala </b> Обаче проблемът е че нещо не мога да налучкам правилният отговор. Смятам че трябва да е нещо от този род: Код
Обаче както споменах - близко съм (или така предполагам), но нещо не ми се получава. Та ако можете - ударете едно рамо! :) Благодаря предварително! Титла: Re: QRegExp (sed) помощ Публикувано от: dvasilev в Aug 27, 2010, 09:22 Не съм много силен в регулярните изрази, но си мисля, че това ще ти свърши работа
Код
Титла: Re: QRegExp (sed) помощ Публикувано от: remotex в Aug 27, 2010, 09:27 Забравил си да го оградиш със скоби (това което ще заместваш) напр.:
Код
Титла: Re: QRegExp (sed) помощ Публикувано от: LinuxFanUNIX в Aug 27, 2010, 09:44 Не съм много силен в регулярните изрази, но си мисля, че това ще ти свърши работаВ този случай не се получава - връща това При текст: abc след замяната става: [<b>]a</b>c[/b] Пак не се получава. :( Титла: Re: QRegExp (sed) помощ Публикувано от: remotex в Aug 27, 2010, 10:03 Не съм много силен в регулярните изрази, но си мисля, че това ще ти свърши работа Note: The C++ compiler transforms backslashes in strings. To include a \ in a regexp, enter it twice, i.e. \\. To match the backslash character itself, enter it four times, i.e. \\\\. Понеже горното дава предупреждение: Код
По-интересното е защо въпреки това работи: дай по-конкретен пример... Не си дал такъв пример, но ... Ако искаш да заместиш (интервалите са за да избегна форматирането) напр. [ b ]ala-bala[ /b ] да стане <b>ala-bala</b> тогава задължително погледни секцията за намиране минимално съвпадение (за/ради вложените етикети) и особено забележката в края, че веднъж си имах проблеми (исках да го направя само с израза и не стана) затова само със (забележи че примера даже не е с вложени а просто с 2 групи по-наблизо): void QRegExp::setMinimal ( bool minimal ) Enables or disables minimal matching. If minimal is false, matching is greedy (maximal) which is the default. For example, suppose we have the input string "We must be <b>bold</b>, very <b>bold</b>!" and the pattern <b>.*</b>. With the default greedy (maximal) matching, the match is "We must be <b>bold</b>, very <b>bold</b>!". But with minimal (non-greedy) matching, the first match is: "We must be <b>bold</b>, very <b>bold</b>!" and the second match is "We must be <b>bold</b>, very <b>bold</b>!". In practice we might use the pattern <b>[^<]*</b> instead, although this will still fail for nested tags. Титла: Re: QRegExp (sed) помощ Публикувано от: dvasilev в Aug 27, 2010, 10:46 @remotex: Вярно, забравил съм, че трябва да escape-на наклонените черти и да станат двойни.
Титла: Re: QRegExp (sed) помощ Публикувано от: LinuxFanUNIX в Aug 27, 2010, 18:08 Благодаря на всички ви! Стана! Ето по този начин:
Код
Още веднъж ви благодаря! Живи и здрави да сте! [_]3 [_]3 [_]3 |