Я использую C#Regex дата время сопоставления,
string content = " 4 marco bob 53 AUSTRIA (Jan. 13, 2012) – McDonald Janruary 15, 2021 July 15, 2923 June 2 2343 7/25/23 08/22/3323";
Это должно recognice все даты кроме «4 марко боб 53», которая, очевидно, не даты и времени. Тем не менее, мои правила (ниже) соответствуют ему (4 marco bob 53), и я не могу понять, как избежать соответствия этому (или аналогичным примерам).
Я пытаюсь совместить строку выше для всех дат. Я написал 3 правила, чтобы сопоставить некоторые общие шаблоны дат.
например:
шаблон f0: 5/2/2012
шаблон f2: 3 марта 1900 или 3 марта 1990 или 3 марта 1990 и т.д ...
Pattern f3: 4 января 2021 или 4 января 2021, и т.д ...
string f0 = "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})";
string f1 = "([0-9]{1,2})\\s+([jJ][aA][nN].*?|[fF][eE][bB].*?|[mM][aA][rR].*?|[aA][pP][rR].*?|[mM][aA][yY].*?|[jJ][uU][nN].*?|[jJ][uU][lL].*?|[aA][uU][gG].*?|[sS][eE][pP].*?|[oO][cC][tT].*?|[nN][oO][vV[.*?|[dD][eE][cC].*?)\\s+([0-9]{2,4})";
string f2 = "([jJ][aA][nN].*?|[fF][eE][bB].*?|[mM][aA][rR].*?|[aA][pP][rR].*?|[mM][aA][yY].*?|[jJ][uU][nN].*?|[jJ][uU][lL].*?|[aA][uU][gG].*?|[sS][eE][pP].*?|[oO][cC][tT].*?|[nN][oO][vV[.*?|[dD][eE][cC].*?)\\s+([0-9]{1,2})[\\s,]+([0-9]{2,4})";
Я новичок в регулярных выражений, поэтому я уверен, что я делаю какие-то глупые вещи (например, не используя нечувствительные к регистру варианты и т. д.), поэтому дайте мне знать, как я могу улучшить это.
Это для обучения регулярных выражений, а не обучение, как использовать функции библиотеки ....
Пытается научиться регулярному выражению. –
Укажите, на каком языке вы пытаетесь изучить регулярное выражение, и я пересмотрю свой ответ. – AlanFoster
Я тоже ... Кроме того, я не знаю каких-либо методов C# для анализа всех дат времени из текстового документа (например, свободного текста). –