8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
1

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

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

Есть текст формата SERVER:PORT@DOMAIN\USER;PASSWORD
Я смог разделить только по двум символам (: и @), как мне разделить по четырем символам?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2018, 13:04
Ответы с готовыми решениями:

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

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

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

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

22
Эксперт .NET
11046 / 7604 / 1177
Регистрация: 21.01.2016
Сообщений: 28,608
03.08.2018, 13:05 2
korozyan, так же как вы это сделали с двумя символами.
0
Эксперт .NET
8868 / 5648 / 1344
Регистрация: 25.05.2015
Сообщений: 17,145
Записей в блоге: 14
03.08.2018, 13:08 3
Цитата Сообщение от korozyan Посмотреть сообщение
Я смог разделить только по двум символам (: и @), как мне разделить по четырем символам?
Регулярным выражением.

Не по теме:

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

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

Добавлено через 56 секунд
Это подключение к удаленному серверу
0
96 / 84 / 49
Регистрация: 17.09.2014
Сообщений: 670
03.08.2018, 13:38 5
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
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
03.08.2018, 13:59 6
Лучший ответ Сообщение было отмечено korozyan как решение

Решение

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

korozyan,
C#
1
2
string initS = "SERVER:PORT@DOMAIN\\USER;PASSWORD";
            var splitArray = initS.Split(new string[] {":", ";", "@", "\\"}, StringSplitOptions.RemoveEmptyEntries);
на выходе получим 5 значений
3
1137 / 940 / 240
Регистрация: 15.06.2012
Сообщений: 3,654
Записей в блоге: 1
03.08.2018, 14:58 7
Лучший ответ Сообщение было отмечено 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
8868 / 5648 / 1344
Регистрация: 25.05.2015
Сообщений: 17,145
Записей в блоге: 14
03.08.2018, 15:26 8
Цитата Сообщение от 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
1137 / 940 / 240
Регистрация: 15.06.2012
Сообщений: 3,654
Записей в блоге: 1
03.08.2018, 15:41 9
Цитата Сообщение от Rius Посмотреть сообщение
А зачем их учитывать?
Ну, с регулярками тут по ходу все ок, хотя меня убивает, когда к ним приходится обращатся...
0
Rius
03.08.2018, 15:43
  #10

Не по теме:

Ага.

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

0
1452 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
03.08.2018, 16:56 11
Rius,

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

Не по теме:

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

0
Wolfdp
04.08.2018, 09:23
  #14

Не по теме:

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

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

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

Не по теме:

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

0
zewer
08.08.2018, 19:57
  #17

Не по теме:

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

0
Эксперт .NET
11046 / 7604 / 1177
Регистрация: 21.01.2016
Сообщений: 28,608
08.08.2018, 20:55 18
zewer, чем var усложняет понимание кода?

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

Не по теме:

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

0
zewer
08.08.2018, 21:34     Split по четырем символам
  #20

Не по теме:


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

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

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

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

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2018, 21:34

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

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

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

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


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

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

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