Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157

Split по четырем символам

03.08.2018, 13:04. Показов 2785. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть текст формата SERVER:PORT@DOMAIN\USER;PASSWORD
Я смог разделить только по двум символам (: и @), как мне разделить по четырем символам?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.08.2018, 13:04
Ответы с готовыми решениями:

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

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

Split по нескольким символам
как разделить строку по нескольким символам? у метода split есть перегрузки принимающие один символ, строку и еще что то с регулярками, а...

22
Эксперт .NET
 Аватар для Usaga
14298 / 9383 / 1353
Регистрация: 21.01.2016
Сообщений: 35,374
03.08.2018, 13:05
korozyan, так же как вы это сделали с двумя символами.
0
Эксперт .NET
 Аватар для Rius
13126 / 7687 / 1676
Регистрация: 25.05.2015
Сообщений: 23,457
Записей в блоге: 14
03.08.2018, 13:08
Цитата Сообщение от korozyan Посмотреть сообщение
Я смог разделить только по двум символам (: и @), как мне разделить по четырем символам?
Регулярным выражением.

Не по теме:

Далее логичен вопрос, а что это такое и покажите код. :)

0
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
03.08.2018, 13:24  [ТС]
мне бы хотелось, чтобы сразу четыре символа разделялось, а не два

Добавлено через 56 секунд
Это подключение к удаленному серверу
0
96 / 84 / 49
Регистрация: 17.09.2014
Сообщений: 670
03.08.2018, 13:38
korozyan, Можно, используя Split. Например, так:
C#
1
2
3
4
5
6
string initS="SERVER:PORT@DOMAIN\\USER;PASSWORD";
string[] s1=initS.Split(':');
string[] s2=s1[1].Split('@');
string[] s3=s2[1].Split('\\');
string[] s4=s3[1].Split(';');
string Rez=s1[0]+'  '+s2[0]+'  '+s3[0]+'  '+s4[0]+'  '+s4[1];
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
03.08.2018, 13:59
Лучший ответ Сообщение было отмечено korozyan как решение

Решение

Alexey2014, зачем столько операций?

korozyan,
C#
1
2
string initS = "SERVER:PORT@DOMAIN\\USER;PASSWORD";
            var splitArray = initS.Split(new string[] {":", ";", "@", "\\"}, StringSplitOptions.RemoveEmptyEntries);
на выходе получим 5 значений
3
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
03.08.2018, 14:58
Лучший ответ Сообщение было отмечено korozyan как решение

Решение

регулярки, сплитьі... хоть кто-то учел, что пароль/логин может содержать значемые значения, по которым разграничиваем?!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        static void Main(string[] args)
        {
            var input = @"microsoft:123@cyber-forum\Wolf@dp;:@\;";
            var serverEndIndex = input.IndexOf(':');
            var portEndIndex = input.IndexOf('@');
            var domainEndIndex = input.IndexOf('\\');
            var loginEndIndex = input.IndexOf(';');
 
            var server = input.Substring(0, serverEndIndex);
            var port = input.Substring(serverEndIndex + 1, portEndIndex - serverEndIndex - 1);
            var domain = input.Substring(portEndIndex + 1, domainEndIndex - portEndIndex - 1);
            var login = input.Substring(domainEndIndex + 1, loginEndIndex - domainEndIndex - 1);
            var password = input.Substring(loginEndIndex + 1);
 
            Console.WriteLine($"server = {server}");
            Console.WriteLine($"port = {port}");
            Console.WriteLine($"domain = {domain}");
            Console.WriteLine($"login = {login}");
            Console.WriteLine($"password = {password}");
 
            Console.ReadKey();
        }
1
Эксперт .NET
 Аватар для Rius
13126 / 7687 / 1676
Регистрация: 25.05.2015
Сообщений: 23,457
Записей в блоге: 14
03.08.2018, 15:26
Цитата Сообщение от Wolfdp Посмотреть сообщение
регулярки, сплитьі... хоть кто-то учел, что пароль/логин может содержать значемые значения, по которым разграничиваем?!
А зачем их учитывать?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void Main(string[] args)
{
    var input = @"microsoft:123@cyber-forum\Wolf@dp;:@\;";
    var regex = new Regex(@"(.+?)\:(\d+?)\@(.+?)\\(.+?)\;(.+?)$");
    var m = regex.Match(input);
 
    if (m.Success)
    {
        var server = m.Groups[1].Value;
        var port = m.Groups[2].Value;
        var domain = m.Groups[3].Value;
        var login = m.Groups[4].Value;
        var password = m.Groups[5].Value;
 
        Console.WriteLine($"server = {server}");
        Console.WriteLine($"port = {port}");
        Console.WriteLine($"domain = {domain}");
        Console.WriteLine($"login = {login}");
        Console.WriteLine($"password = {password}");
    }
}
server = microsoft
port = 123
domain = cyber-forum
login = Wolf@dp
password = :@\;
Добавлено через 3 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void Main(string[] args)
{
    var input = @"microsoft:123@cyber-forum\Wolf@dp;:@\;";
    Regex regex = new Regex(@"(?<server>.+?)\:(?<port>\d+?)\@(?<domain>.+?)\\(?<login>.+?)\;(?<password>.+?)$");
    var m = regex.Match(input);
 
    if (m.Success)
    {
        var server = m.Groups["server"].Value;
        var port = m.Groups["port"].Value;
        var domain = m.Groups["domain"].Value;
        var login = m.Groups["login"].Value;
        var password = m.Groups["password"].Value;
 
        Console.WriteLine($"server = {server}");
        Console.WriteLine($"port = {port}");
        Console.WriteLine($"domain = {domain}");
        Console.WriteLine($"login = {login}");
        Console.WriteLine($"password = {password}");
    }
}
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
03.08.2018, 15:41
Цитата Сообщение от Rius Посмотреть сообщение
А зачем их учитывать?
Ну, с регулярками тут по ходу все ок, хотя меня убивает, когда к ним приходится обращатся...
0
03.08.2018, 15:43

Не по теме:

Ага.

Некоторые люди, когда сталкиваются с проблемой, думают «Я знаю, я решу её с помощью регулярных выражений.» Теперь у них две проблемы.

0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
03.08.2018, 16:56
Rius,

Надо это себе записать...
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.08.2018, 17:06
LeniumSoft, на английском Stackoverflow была фраза:
"Если Вы так сильно любите регулярные выражения, почему Вы не женитесь на них."
0
03.08.2018, 22:48

Не по теме:

Зачем везде пишете var ??

0
04.08.2018, 09:23

Не по теме:

Цитата Сообщение от zewer Посмотреть сообщение
Зачем везде пишете var ??
https://habr.com/post/39231/

Плюс мой личный и рабочий гайдлайнс подразумевает исользования var везде, где это можно.

0
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
04.08.2018, 10:28  [ТС]
Помог, спасибо)
0
04.08.2018, 10:49

Не по теме:

Цитата Сообщение от zewer Посмотреть сообщение
Зачем везде пишете var ??
Сокращает количество писанины.

0
08.08.2018, 19:57

Не по теме:

Wolfdp, Usaga,
var надо использовать там где нужно, а не усложнять понимание кода, пихая его на локальные переменные )))
дело ваше, конечно же, но злоупотреблять я бы не стал

0
Эксперт .NET
 Аватар для Usaga
14298 / 9383 / 1353
Регистрация: 21.01.2016
Сообщений: 35,374
08.08.2018, 20:55
zewer, чем var усложняет понимание кода?

Вы без явного объявления типа локальной переменной начинаете путаться как в лесу ночью? Смысл переменной становится размытым?
0
08.08.2018, 21:19

Не по теме:

zewer, я выше скинул довольно доходчивую статью, почему стоит использовать var. Плюс почему-то все рабочие колеги тоже юзают его, и даже командный code guideline требует писать var. По ходу намерено усложняем себе жизнь. Как и с лямдами, ведь не расписываем что за тип принимает метод, не указываем явно return -- просто кошмар! :jokingly:

0
08.08.2018, 21:34

Не по теме:


Цитата Сообщение от Usaga Посмотреть сообщение
zewer, чем var усложняет понимание кода?
В некоторых ситуациях не дает адекватного понимания, какого типа будет переменная, что она содержит.
Там же в статье люди в комментах писали даже и наводили ситуации, когда var усложняет понимание моментов

Цитата Сообщение от Rius Посмотреть сообщение
C#
1
var port = m.Groups["port"].Value;
Сейчас перелистал тему, и когда увидел это, подумал что тут будет Int32, а потом вспомнил, что у нас регулярка

Я с Вами спорить не хочу и не буду, в проекте не раз встречал моменты, что пока мышью не наведу на переменную, или не зайду на метод, фиг поймешь что он возвращает, и что будет в переменной

П.С. Интересно, какой у Вас взгляд на комментарии в коде? Нужны? Или коммент в коде = говно код?)

Добавлено через 3 минуты
Wolfdp,
Ознакомился с ней и с комментариями под ней, что и Вам советую

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2018, 21:34
Помогаю со студенческими работами здесь

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

Метод split - выдается ошибка Uncaught TypeError: Cannot read property 'split' of undefined
Вот кусок кода CheckLinkText: function(val, f){ if(!$('#attach_lnk_stared').val()){ matches = val.split('http://'); url =...

Запрос по четырем таблицам
Есть такие таблицы: sale: id, phone, saleDate, prod_id, user_id app_user: id, enabled, name, password product: id, name, price,...

Проверить кратность числа четырем
Нужно проверить, кратное ли число четырем на VASM. Заранее спасибо.

i8080, кратность числа четырем
Здравствуйте! Нужно проверить, кратное ли число четырем. Спасибо.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru