Java正则表达式从文本替换日期

时间:2013-12-09 14:43:50

标签: java regex date replaceall

我用谷歌搜索我的答案,但无法得到答案。因为我是正则表达式的新手。我需要在这里提出我的问题。

我有一个文本文件,我需要在其中替换"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

3 个答案:

答案 0 :(得分:3)

REGEX:

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

这符合一般模式,但会接受无效日期,这似乎不是您的担忧。

答案 1 :(得分:0)

不要忘记在正则表达式符号前使用反斜杠:

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

解释Antoniossss中使用的符号答案:

  • \ d任何数字,[0-9]
  • 的缩写
  • \ s一个空格字符
  • {X}发生X次,{}描述前一个文本的顺序

      

    例如:\ d {2}搜索两位数字

  •   
  • X | Z查找X或Z.
  •   
  要了解有关Java中正则表达式的更多信息,我可以向您推荐以下教程:http://www.vogella.com/articles/JavaRegularExpressions/article.html

答案 2 :(得分:0)

您可以使用一个短表达式来检查起始数字和两个单词字符:

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

我使用rubular.com检查我的正则表达式。