Russian Qt Forum
Ноябрь 25, 2024, 10:57
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
RegExp или работа со строкой.
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: RegExp или работа со строкой. (Прочитано 11333 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: RegExp или работа со строкой.
«
Ответ #15 :
Январь 21, 2013, 14:05 »
Ну хорошо
Цитата: Bepec от Январь 21, 2013, 11:39
Собственно вариаций может быть много, но есть чёткая структура. Хотелось бы возможности вбить шаблон аля "index: (utf8string (v i=%1))" и в результате на выхлопе получить массив из содержимого между "index: (utf8string (v i=" и ")".
Если я верно понял, парсер не требуется, нужно только определить сбивается строка по форматке или нет. Тогда вроде и смысла нет запрягать какой-то тул. Задаем форматку "index: (utf8string (v i=%1))"
1) По форматке ищем %, имеем подстроку от начала до %
2) Сравниваем подстроку с текущей (ну возможно без учета пробелов и табов). В результате имеем позицию что соответствует % в текущей строке
3) Извлекаем значение из текущей строки
4) Возможно проверяем хвостики на совпадение
Записан
Bepec
Гость
Re: RegExp или работа со строкой.
«
Ответ #16 :
Январь 21, 2013, 14:06 »
Ну собственно данный экземпляр велосипеда недавно начал свою работу третьим колесом
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: RegExp или работа со строкой.
«
Ответ #17 :
Январь 21, 2013, 14:13 »
Цитата: Bepec от Январь 21, 2013, 14:06
Ну собственно данный экземпляр велосипеда недавно начал свою работу третьим колесом
И что здесь плохого? Почему надо обязательно "чем-то воспользоваться"?
Записан
Bepec
Гость
Re: RegExp или работа со строкой.
«
Ответ #18 :
Январь 21, 2013, 14:16 »
Я просто обоснованно думаю, что мой код, использующий всякие indexOf, по сравнению с другими решениями, очень медлителен и затратен
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: RegExp или работа со строкой.
«
Ответ #19 :
Январь 21, 2013, 14:29 »
Цитата: Bepec от Январь 21, 2013, 14:16
Я просто обоснованно думаю, что мой код, использующий всякие indexOf, по сравнению с другими решениями, очень медлителен и затратен
Точно. Проще один раз описать все правила и забыть про его разбор, чем после каждого чиха, что-то дописывать, отлаживать и проверять.
Записан
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: RegExp или работа со строкой.
«
Ответ #20 :
Январь 21, 2013, 15:57 »
Цитата: Bepec от Январь 21, 2013, 11:39
Прошу совета - имеется ли готовое решение на базе RegExp или ином виде, для того чтобы:
из строки вида
Цитировать
index: (utf8string (v i=1105))
name: (string (v s=Тряляля))
Получить на выходе массив
Цитировать
[1] 1105
[2] Тряляля
Собственно вариаций может быть много, но есть чёткая структура. Хотелось бы возможности вбить шаблон аля "index: (utf8string (v i=%1))" и в результате на выхлопе получить массив из содержимого между "index: (utf8string (v i=" и ")".
Интересно, кто автор этого велосипеда?
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: RegExp или работа со строкой.
«
Ответ #21 :
Январь 21, 2013, 16:56 »
.*[=:].*\(.*\(.*=(.*)\)\)
Записан
Qt 5.11/4.8.7 (X11/Win)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: RegExp или работа со строкой.
«
Ответ #22 :
Январь 21, 2013, 17:07 »
а если втупую =(.+)\)\) ? нас же не интересует начало.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
Re: RegExp или работа со строкой.
«
Ответ #23 :
Январь 22, 2013, 07:35 »
Создатель сиего творения почивает лавры в далёёёких далях
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: RegExp или работа со строкой.
«
Ответ #24 :
Январь 22, 2013, 10:01 »
Цитата: Bepec от Январь 22, 2013, 07:35
Создатель сиего творения почивает лавры в далёёёких далях
Наверное "на лаврах"
Все равно - не пойму какие основания для фыркания и "поджимания губок", дескать, ах, какой велосипед - ну почему же он не воспользовался чем-то известным, напр xml или json. Ну может не у всех под рукой мощный инструментарий, или не все хотят им обязательно пользоваться.
Цитата: kambala от Январь 21, 2013, 17:07
а если втупую =(.+)\)\) ? нас же не интересует начало.
По смыслу - должно интересовать, напр мы не должны добавлять в массив int если тип string
Записан
Bepec
Гость
Re: RegExp или работа со строкой.
«
Ответ #25 :
Январь 22, 2013, 10:32 »
to igors: Угум. Первая часть тоже будет интересовать. Но в дальнейшей перспективе.
На данный момент нужен был огрызок функционала. Структура данных в самом классе выстраивается за счёт точного знания структуры данных.
РегЭсп не осилил многообразия, использую свой велосипед.
Почему такой непонятный формат и почему не написать самому?
Потому что нужно : "когда было нужно? в прошлом году".
Написать самому потому что : "в результате придётся написать свой парсер".
PS а формат является, насколько я помню, алгоритмом сериализации "parens".
Попозж
Записан
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: RegExp или работа со строкой.
«
Ответ #26 :
Январь 22, 2013, 10:40 »
Немного похоже на IBM-овские файлы конфигурации.
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...