Не находит числа в файле
С помощью регулярных выражений найти в тексте все даты. Даты записаны в европейском формате (день-месяц-год)
using System;
using System.Text.RegularExpressions;
using System.IO;
namespace _6._1
{
class Program
{
static void Main(string[] args)
{
string dataFromFile = File.ReadAllText(@"C:\Users\Malson\Desktop\1.txt");
Regex reg = new Regex(@"^\d{1,2}([-. /])\d{1,2}\1\d{2,4}$");
MatchCollection roj = reg.Matches(dataFromFile);
if (roj.Count > 0)
{
foreach (Match match in roj)
Console.WriteLine(match.Value);
}
else
{
Console.WriteLine("Совпадений не найдено");
}
}
}
}
Ответы (1 шт):
Автор решения: Alexander Petrov
→ Ссылка
new Regex(@"^\d{1,2}([-. /])\d{1,2}\1\d{2,4}(?=\r?$)", RegexOptions.Multiline);
Параметр RegexOptions.Multiline нужен для того, чтобы символы ^ и $ работали для каждой строки, а не для всего текста.
Якорь $ находит совпадение в конце строки или перед символом \n. А в тексте наверняка содержатся последовательности \r\n. Поэтому нужно добавить поиск \r (необязательный). И чтобы сам этот символ не захватывался, используем просмотр вперёд.
