2015-08-25 5 views
-2

Я хочу извлечь дату из строки.Извлечение даты из файла с расширением

Строка: _21_BT_Txn_Details_1-Aug-2015_1031389ACF6.zip

Как это сделать?

+0

Посмотрите на дату в строке и раздеть остальное. – PaulF

+1

Попробуйте следующее: '\ d + - \ w + - \ d +' .. _https: //regex101.com/r/lW9yI3/1_ –

+0

Нет, разделите на '_' и используйте' DateTime.Parse() 'для элементов в проверьте правильность даты. –

ответ

0

Попробуйте это:

\d{1,2}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{4} 

Demo и объяснение регулярных выражений символов: https://regex101.com/r/lW9yI3/2

Предположения:

  • День может быть одна или две цифры
  • года всегда четыре цифры
  • Стандартные трехбуквенные сокращения являются использование в течение месяца
0

Вы можете использовать следующий код, который может извлечь более 1 даты внутри строки, как тот, который вы при условии:

var txt = "_21_BT_Txn_Details_1-Aug-2015_1031389ACF6.zip"; 
DateTime dt; 
var res = txt.Split('_').Where(p => DateTime.TryParse(p, out dt)).ToList(); 

Или, если у вас всегда есть дата в выше формате (day-MON-year), используйте

DateTime.TryParseExact(p, "d-MMM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt) 

Там нет необходимости в регулярном выражении здесь.

enter image description here

Смежные вопросы