Помогите с регулярным выражением в C#

264
28 апреля 2017, 16:28

Привет всем!

Есть строка, которая всегда содержит AAAA_num1_num2. AAAA_ - всегда одни и те же символы. num1, num2 - это числа (int). Разделены все символы этим: "_".

Я извлекал числа с помощью Int.parse, но хотелось бы регулярным выражением это сделать. Можете показать как это лучше реализовать?

Answer 1

Следующий код извлечет все числа из строки:

  string pattern = @"\d{1,}";
  Regex rgx = new Regex(pattern);
  string s = ...;
  foreach (Match match in rgx.Matches(s))
     Console.WriteLine(match.Value);

По ссылке можно поэкспериментировать: https://regex101.com/r/NxqnC7/1

Answer 2

Как вариант, если опустить всевозможные проверки, так:

var match = new Regex(@"_(\d+)_(\d+)").Match();
var num1 = int.Parse(match.Groups[1]);
var num2 = int.Parse(match.Groups[2]);

Скобки в регулярке преобразуются в группы. Причем групп всегда на одну больше (группа с индексом 0 - сам match)

READ ALSO
“Частичная” десериализация объекта

“Частичная” десериализация объекта

В ответ на запрос к API я получаю json следующей структуры:

248
Перебрать все TextBox расположенные во всех Panel

Перебрать все TextBox расположенные во всех Panel

Есть две Panel, в каждой из них по пять TextBox

326
Найти картинку среди текста

Найти картинку среди текста

Например, есть изображение, на этом изображении текст, а так же может быть иллюстрация

280
Как организовать работу сайта с ботом telegram?

Как организовать работу сайта с ботом telegram?

Можно ли организовать работу сайта с ботом telegram в таком ключе, я отправляю боту команду, а он POST или GET запросом отправляет ее на сайт и на сайте...

307