Здравствуйте, гость ( Вход | Регистрация )
cupersuper | Дата 9.5.2011, 13:17 |
Кстати, сейчас проверил выражение:
Применительно к строке, указанной в моём примере и результатом стало: Ехали медведи на велосипеде. А за ними кот задом наперёд А за ним комарики на воздушном шарике А за ними раки на хромой собаке. *** Вот оно, глупое счастье, с белыми окнами в сад! По пруду лебедем красным плавает тихо закат.XXX Litkevich Yuriy, можете у себя проверить, это я о знаке $ в регулярных выражениях, хотя опять меня интересует другой вопрос |
|
cupersuper | Дата 9.5.2011, 11:45 |
и он также не срабатывает | |
cupersuper | Дата 9.5.2011, 11:01 |
$, насколько я помню конец всей строки QString, а надо перевод строки и каретки, и опять же сохраняя условие просто конец строки (в зависимости от платформы - \r\n или \r или \n). Для регулярного выражения вообще "Конец всей строки QString" - неизвестный термин.Ок, спасибо, буду знать, только у меня проблема не с определением конца строки, а именно с использованием .cap в .replace Нужно условие: "после строчной буквы - заглавная, без точки между ними" заменить на "после строчной буквы - заглавная, с точкой между ними" а согласно выражению:
я получу, например в данной строке: Ехали медведи на велосипеде. А за ними кот задом наперёд. А за ним комарики на воздушном шарике. А за ними раки на хромой собаке. . ***. . Вот оно, глупое счастье, с белыми окнами в сад!. По пруду лебедем красным плавает тихо закат. четыре лишних точки (пометил зелёным). Вобщем без QRegExp::cap() или QRegExp::capturedTexts() необойтись, да и хочется научиться их использовать в связке с QString::replace() Я себе это представляю так:
но не работает( Собственно первый пример лучше подходил для моей ситуации txtString.replace( QRegExp("[а-я](\r\n)[А-Я]").cap(1),".\r\n" ); т.к. $, действует только в конце выражения |
|
Litkevich Yuriy | Дата 9.5.2011, 6:53 |
$, насколько я помню конец всей строки QString, а надо перевод строки и каретки, и опять же сохраняя условие просто конец строки (в зависимости от платформы - \r\n или \r или \n). Для регулярного выражения вообще "Конец всей строки QString" - неизвестный термин. |
|
cupersuper | Дата 8.5.2011, 22:23 |
Например:
необходимой замены не производит. Интересно, возможно ли использование карманов QRegExp.cap() в связке с QString.replace? to Litkevich Yuriy $, насколько я помню конец всей строки QString, а надо перевод строки и каретки, и опять же сохраняя условие |
|
Litkevich Yuriy | Дата 8.5.2011, 22:18 |
конец предложения - $ Следовательно и шаблон должен быть таким:
Пардон, продолжение не прочитал |
|
cupersuper | Дата 8.5.2011, 21:56 |
Уточню, хотел покороче описать проблему, но походу не получилось, к примеру, есть строка: Ехали медведи на велосипеде. А за ними кот задом наперёд А за ним комарики на воздушном шарике А за ними раки на хромой собаке. *** Вот оно, глупое счастье, с белыми окнами в сад! По пруду лебедем красным плавает тихо закат. В некоторых местах в пропущены точки в конце предложения (после "наперёд" и "шарике"), нужно определить конец предложения без точки: [а-я]\r\n[А-Я] И заменить на: [а-я].\r\n[А-Я] Вопрос кодировки не волнует, регулярное выражение вставляю в QString::fromLocal8Bit(). Если просто менять \r\n на .\r\n , то как-бы регулярка не нужна, т.к. данную замену надо производить не вконце каждого предложения, а только где подходит условие: "после строчной буквы - заглавная, без точки между ними". |
|
fedin.dmitriy | Дата 8.5.2011, 4:50 |
Все прикольно, только вот где указывается строка для поиска?
или второй пример уже более красивый
Оба прекрасно сработали. И когда в регулярном выражении задаются шаблоны, типа [a-z] или [A-Z] то они прекрасно срабатывают и на кириллицу тоже. |
|
xls | Дата 6.5.2011, 11:22 |
Кириллица не поддерживается, попробуй в Unicode : \\x0410-\\x042F |
|
RazrFalcon | Дата 5.5.2011, 22:05 |
Могу предложить: http://regexr.com?2tmqa |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 26.4.2024, 22:40 |