Java正则表达式匹配用点分隔的日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java正则表达式匹配用点分隔的日期相关的知识,希望对你有一定的参考价值。

我有以下正则表达式[d\d[.]dd[.]dd][\d\d\.\d\d\.\d\d].*,他们都正确匹配日期行,但也匹配不包含日期但只包含数字(和文本)的行。

我的文字格式是这样的:

12.04.18, 15:59 - A: xyz
12345 abc
12.04.18, 16:00 - B: cde
abc 12345

我希望正则表达式匹配第1行和第3行

答案

您需要转义句点字符,因为它在正则表达式中被视为通配符。此外,您正在使用不需要的Character Class。字符类用方括号表示,用于列出该位置的可接受字符。看看使用这个正则表达式:

dd.dd.dd.*$

Demo Here

说明

  • 如你所知,d会搜索一个数字
  • qazxsw poi寻找字面上的qazxsw poi字符,而不是像一个外卡的时期的正则表达式解释
  • .用于匹配我们的日期匹配后的剩余行
  • .表示线的结束,确保我们匹配整条线。
另一答案

通常的建议不是使用正则表达式来验证日期时间字符串,而是使用标准库中的日期时格式化程序。在您的情况下,它可能不是绝对必要的,但我想将它作为一个选项呈现给您和任何阅读的人。

.*

上面的代码段打印:

$

潜在优势包括:

  • 它给出了更严格的验证,即数字构成了有效的日期和时间。
  • 从代码中可以更清楚地检查日期时间。正则表达式读取和写入更加棘手。
  • 您将日期和时间作为日期时间对象获取,以便在需要时进行任何进一步处理。

以上是关于Java正则表达式匹配用点分隔的日期的主要内容,如果未能解决你的问题,请参考以下文章

java 正则表达式匹配字符串,包含没有数字的单词,并且可以选择用逗号分隔

Java_正则表达式&时间日期

Java:正则表达式不匹配

无法使用 Java 正则表达式匹配字符串的最后部分 [重复]

用点号匹配任意字符

第 7章 模式匹配与正则表达式(7.9-7.11)