Я хочу извлечь дату из строки с помощью регулярного выражения.

Строка: log-bb-2014-02-12-12-06-13-diag

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

9
BAPSDude 12 Фев 2014 в 13:28

3 ответа

Лучший ответ

Вот с чего начать:

string s = "log-bb-2014-02-12-12-06-13-diag";
Regex r = new Regex(@"\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}");
Match m = r.Match(s);
if(m.Success)
{
    DateTime dt = DateTime.ParseExact(m.Value, "yyyy-MM-dd-hh-mm-ss", CultureInfo.InvariantCulture);
}
13
Alberto 12 Фев 2014 в 09:45

Учитывая, что ваша дата просто 2014-02-12, то есть 12 февраля 2014 г. Я написал приведенный ниже код для извлечения этой части с помощью ruby.

str = 'log-bb-2014-02-12-12-06-13-diag'

str.scan(/\d{4}.\d{2}.\d{2}/)

Вернет ["2014-02-12"]

Регулярное выражение записывается в двух /

\d означает любое целое число, Фигурные скобки {} с любым целым числом означают, сколько раз оно было повторено, . означает любой символ. Здесь я использовал его для -

2
aelor 12 Фев 2014 в 09:46

Попробуй это

(\d+)[-.\/](\d+)[-.\/](\d+)

Regex Demo.

Он будет соответствовать всем форматам даты

11
Vignesh Kumar A 12 Фев 2014 в 09:46