Выделить из строки дату, сумму и другую информацию - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую! Есть переменная Line типа string в которой находится строка, полученная из txt документа. Пример строки:
Текст текст текст Текст текст текст Текст текст текст c

01/10/2016

по

09/10/2016

на общую сумму

430,00

в кол-ве

1

, на сумму

857,54

согласно документа

123456

от

10/10/2016

Необходимо извлечь из строки все данные, в разные переменные. Для даты нашел хороший паттерн (0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d , но не понимаю как экранировать два подряд идущих документа \d\d, есть вариант заменить их на элемент (16|17). Есть вариант читать посимвольно для , но количество цифр в сумме может быть как меньше так и больше, что приводит к ошибке. Помогите пожалуйста решить эту задачу с помощью паттернов.

Решение задачи: «Выделить из строки дату, сумму и другую информацию»

textual
Листинг программы
string str = "Текст текст текст Текст текст текст Текст текст текст c 01/10/2016 по 09/10/2016 на общую сумму 430,00 в кол-ве 1, на сумму 857,54 согласно документа 123456 от 10/10/2016";
string pattern = @"(?'date'(?:[0-9]?\d{2}\/[0-9]?\d{2}\/[0-9]?\d{4}))|(?'sum'(?:[+-]?\d*\,\d+))|(?'number'(?:\d{6}))|(?'count'(?:\d+))";
Regex newReg = new Regex(pattern);
MatchCollection matches = newReg.Matches(str);
Console.WriteLine("Значение {0}", matches[0].Captures[0].Value);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы