Заблокирован
1

Split по нескольким символам

12.02.2016, 08:46. Показов 5266. Ответов 6
Метки нет (Все метки)

как разделить строку по нескольким символам? у метода split есть перегрузки принимающие один символ, строку и еще что то с регулярками, а вот как по нескольким символам? (не по строке!) т.е. как в C#, например по ' ' и '.' строка допустим "4 # 1.1.2.Материал 2 # 2", должно получиться { "4", "#", "1", "1", "2", "Материал", "2", "#", "2" }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2016, 08:46
Ответы с готовыми решениями:

Split по нескольким символам
Собсно: boost::algorithm::split(parts, str, boost::is_any_of("\r\n\r\n")); Бьёт только по одном...

String.Split по нескольким символам
Добрый день, подскажите как в C# строку сплитануть по нескольким символам, а не по одному?

Split по четырем символам
Есть текст формата SERVER:PORT@DOMAIN\USER;PASSWORD Я смог разделить только по двум символам (: и...

Split по двум символам
Помогите написать условие чтоб сплитовать строку по комбинации символов ". "(точка и пробел) вместе...

6
184 / 176 / 57
Регистрация: 25.09.2014
Сообщений: 828
12.02.2016, 09:36 2
Лучший ответ Сообщение было отмечено Penelent как решение

Решение

C++ (Qt)
1
2
3
QString myString = "4 # 1.1.2.Материал 2 # 2";
QRegExp rx("[.\s]");
QStringList myStringList = myString.split(rx);
Вроде так... Других способов не знаю, если честно. Можно попробовать замутить свой класс или найти готовый под это дело.
1
Заблокирован
12.02.2016, 09:45  [ТС] 3
Горбаг, так не работает же, по точкам разбил, а по пробелам нет

Добавлено через 2 минуты
аа все понял, это же не C#, тут экранировать надо слэш, все заработало спасибо
0
184 / 176 / 57
Регистрация: 25.09.2014
Сообщений: 828
12.02.2016, 09:54 4
Еще учти, если будут более сложные конструкции поиска, а не просто по конкретным символам, QRegExp придется поменять на что-то другое, ибо в QRegExp не отрабатывали 2 из 4 условных поисков и была проблема с разной жадностью для разных частей выражения. Я переехал на pcre, ибо ничего другого использовать было нельзя.
0
Заблокирован
12.02.2016, 10:01  [ТС] 5
Горбаг, кстати, тут я смотрю есть QRegExp, а есть QRegularExpression, это одно и тоже или чем то различаются?))
0
184 / 176 / 57
Регистрация: 25.09.2014
Сообщений: 828
12.02.2016, 10:21 6
Я на 4.8 сижу, тут нет его. Вроде был добавлен в 5 версии. В документации сказано следующее:
Note: In Qt 5, the new QRegularExpression class provides a Perl compatible implementation of regular expressions and is recommended in place of QRegExp.

Однако в самом QRegularExpression сказано, что он все равно, точно так же, как и QRegExp не полностью поддерживает Perl'овые конструкции регулярок. Таким образом, черт его знает, зачем его ввели вообще... Может и есть какие-то улучшенные или новые методы, но без полноценной поддержки перл-синтаксиса, они нафиг не сдались.
0
1067 / 649 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
12.02.2016, 11:15 7
Цитата Сообщение от Горбаг Посмотреть сообщение
Однако в самом QRegularExpression сказано, что он все равно, точно так же, как и QRegExp не полностью поддерживает Perl'овые конструкции регулярок. Таким образом, черт его знает, зачем его ввели вообще... Может и есть какие-то улучшенные или новые методы, но без полноценной поддержки перл-синтаксиса, они нафиг не сдались.
Из-за очень больших модифицикаций по API и методам использования, а также чтобы не ломать обратную совместимость со всеми Qt4 программами в местах использования в них QRegExp(а это очень много где) ввели новое имя.
Пока что да - поддержка пёрловых регулярок не полная, в будущем обещают доделать. Мне лично хватает того, что есть.
В общем и целом в qt5 лучше использовать QRegularExpression вместо QRegExp(которая может быть deprecated), как того и советует документация.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2016, 11:15
Помогаю со студенческими работами здесь

Поиск позиции номенклатуры по нескольким символам
Здравствуйте. Сделала внешний отчетик, в котором отражаются накладные за указанный пользователем...

Как разбить строку на подстроки по нескольким символам
Рабочий код на VB по разделению строки Dim water() As String = Split(File(j), ", ") Помогите...

Сравнение данных полей по нескольким символам - как?
нужно сравнить данные двух таблиц, причем в одной все достаточно формально и неизменно, а во...

Разбить строку по нескольким символам и занести в таблицу
Приветствую. Получаю от устройства таку строку :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru