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.*$
说明
- 如你所知,
d
会搜索一个数字 - qazxsw poi寻找字面上的qazxsw poi字符,而不是像一个外卡的时期的正则表达式解释
.
用于匹配我们的日期匹配后的剩余行.
表示线的结束,确保我们匹配整条线。
另一答案
通常的建议不是使用正则表达式来验证日期时间字符串,而是使用标准库中的日期时格式化程序。在您的情况下,它可能不是绝对必要的,但我想将它作为一个选项呈现给您和任何阅读的人。
.*
上面的代码段打印:
$
潜在优势包括:
- 它给出了更严格的验证,即数字构成了有效的日期和时间。
- 从代码中可以更清楚地检查日期时间。正则表达式读取和写入更加棘手。
- 您将日期和时间作为日期时间对象获取,以便在需要时进行任何进一步处理。
以上是关于Java正则表达式匹配用点分隔的日期的主要内容,如果未能解决你的问题,请参考以下文章
java 正则表达式匹配字符串,包含没有数字的单词,并且可以选择用逗号分隔