Member 13650651 Ответов: 3

Извлечение символов из подстроки


string name = "S130A-1E734138G04_Trend";
char[] delimiters = new char[] {'-','_'};
            string[] parts = name.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
            Console.WriteLine("Lot Number")
                for (int i = 0; i < parts.Length; i++)
                {
                    Console.WriteLine(parts[i]);
                }



Привет! Я хочу написать код для извлечения символов "1E734138G04", которые находятся после "-" и перед "_".

Я написал эти коды, и я не уверен, как извлечь символы, которые я хочу.

Спасибо за любую помощь!

Что я уже пробовал:

Написал коды выше и немного погуглил но я не уверен что это лучший метод

3 Ответов

Рейтинг:
21

Maciej Los

Ваша роль находится посередине:

string result0 = parts[1];
Console.WriteLine(result0);


[РЕДАКТИРОВАТЬ]
Другой способ:
//linq methods: SkipWhile + TakeWhile
string result1 = string.Join("", name.SkipWhile(x=>x!=delimiters[0]).Skip(1).TakeWhile(x=>x!=delimiters[1]));
Console.WriteLine(result1);
//String.Substring
string result2 = name.Substring(name.IndexOf(delimiters[0])+1, name.IndexOf(delimiters[1]) - name.IndexOf(delimiters[0]) -1);
Console.WriteLine(result2);


Для получения более подробной информации, пожалуйста, смотрите:
Перечислимый.Метод SkipWhile (System.Linq)[^]
Перечислимый.Метод TakeWhile (System.Linq)[^]
Строка.Метод Соединения (String, String[]) (System)[^]
Строка.Метод Подстроки (Int32, Int32) (Система)[^]


CPallini

5.

Maciej Los

Спасибо, Карло.

Рейтинг:
18

CPallini

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

static void Main()
{
  string name = "S130A-1E734138G04_Trend";
  Regex regex = new Regex(@"-(\w+)_");
  Match match = regex.Match(name);
  if (match.Success)
  {
    if (match.Success)
    {
      string key = match.Groups[1].Value;
      Console.WriteLine(key);
    }
  }
}


Maciej Los

5ed!

CPallini

Спасибо тебе, парень!

Member 13650651

Спасибо Вам, CPallini! Работать отлично. Ценю вашу помощь!

CPallini

Добро пожаловать.

Рейтинг:
0

Patrice T

Цитата:
Привет! Я хочу написать код для извлечения символов "1E734138G04", которые находятся после "-" и перед "_".
Я написал эти коды, и я не уверен, как извлечь символы, которые я хочу.

Разве это не то, что делает ваш код ?
Ваш код дает вам правильный ответ или нет ?
Как вы можете быть не уверены, когда видите результат на экране ?
Цитата:
Написал коды выше и немного погуглил но я не уверен что это лучший метод

Для такого ввода разница между методами будет настолько мала, что вы не увидите разницы, если не будете использовать ее миллионы раз.