Регулярное выражение даты и сравнение строк - PullRequest
1 голос
/ 08 апреля 2011
  • Что доступно: строка неизвестного формата, текущая дата.
  • Что может быть предоставлено: дата regexp
  • Что необходимо сделать: разобрать строку по указанной датеregexp и получить дату

Подробности: Я на самом деле пытаюсь извлечь дату из имени файла.Некоторое регулярное выражение или что-то подобное может быть предоставлено через config.

Итак, вопрос разделен на две части:

  • Что именно должно быть указано в конфигурации (просто regexp, или я должен использовать простые вещи cosum, или, возможно, существуют определенные библиотеки)?
  • Какой алгоритм обработки наиболее оптимален (т. Е. Есть строка, и я могу вызывать совпадения на ней, но это приведет к попытке всех возможных подстрок)?

1 Ответ

2 голосов
/ 08 апреля 2011

Что именно должно быть указано в конфиге (просто regexp, или я должен использовать простые вещи cosum, или, возможно, существуют определенные библиотеки)?

Я не уверен, что регулярное выражение является правильным подходом здесь. Даже если вы действительно создаете группы захвата для года / месяца / даты и т. Д., Как вы позволите пользователю определить, какая группа захвата соответствует каким данным?

Я бы посоветовал вам взглянуть на SimpleDateFormat. Строка формата, принятая этим классом, довольно гибкая и удобная для пользователя. Пример приведен

4 июля 2001 г. 12: 08: 56

вы можете сопоставить его с "d MMM yyyy HH:mm:ss"

Какой алгоритм обработки наиболее оптимален (т. Е. Есть строка, и я могу вызывать совпадения, но это приведет к попытке всех возможных подстрок)?

SimpleDateFormat способен анализировать даты, учитывая строку формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...