2013-12-09 7 views
0

У меня есть googled, чтобы найти свой ответ, но я не могу его получить. Поскольку я очень новичок в регулярных выражениях. Мне нужно задать здесь свой вопрос.Java Regex Date Заменить текст

У меня есть текстовый файл, в котором мне нужно заменить содержимое, имеющее значение даты, в формате "MM/dd/yyyy hh:mm:ss a".

Примеры Содержание:

<td> Order is Placed on:</td> 
<td>The date and time is 12/08/2013 05:46:56 PM</td> 

мне нужно в результате вывода, заменив только значение даты. Что-то вроде:

<td> Order is Placed on:</td> 
<td>The date and time is </td> 

Эта дата стоимость может быть появился в любом месте. Существенного суффикса или префикса не существует.

Что может быть регулярное выражение для выше ожидаемого результата ниже кода:

String textLine = readline.replaceAll("some_regex",""); 

Спасибо.


Решение:

String textLine = readline.replaceAll("\\d{2}/\\d{2}/\\d{4}\\s\\d{2}:\\d{2}:\\d{2}\\s(?:AM|PM)", ""); 

Спасибо - @Antoniossss

+0

Модель даты «MM/dd/yyyy hh: mm: ss a'. Вы знаете, какие значения могут принимать все эти идентификаторы, просто преобразуйте их. –

ответ

3

REGEX:

\d{2}/\d{2}/\d{4}\s\d{2}:\d{2}:\d{2}\s(?:AM|PM) 

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

+0

Как насчет '99/99/9999 99:99:99 PM'? Это действительная дата? –

+0

OA ничего не сказал о взятии действительных дат. Он привел пример, я дал решение. – Antoniossss

+0

Спасибо @Antoniossss Мне нужен только шаблон для соответствия. Это не имеет никакого отношения к проверке даты. ваше решение отлично работает. – heemaniroberts

0

Не забудьте использовать обратную косую черту перед регулярных выражений символов:

String pattern = "\\d{2}"; 

Объясняя используемые символы в Antoniossss ответ:

  • \ д Любая цифра, сокращенно [0-9 ]
  • \ s Простой символ
  • {X} Происходит X раз, {} описывает порядок предыдущего либерала

    , например.: \ D {2} ищет двух цифр

  • X | Z Находит X или Z.
Для получения дополнительной информации о регулярных выражений в Java, я могу порекомендовать вам следующее руководство: http://www.vogella.com/articles/JavaRegularExpressions/article.html

0

Вы можете использовать короткое выражение, которое проверяет наличие исходных цифр и два слова символов:

"\\d+.+\\d+.\\w{2}" 

я использую rubular.com проверить мое регулярное выражение.

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