我有以下正则表达式[\d\\d[.]\d\d[.]\d\d]
和[\\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。字符类用方括号表示,用于列出该位置的可接受字符。看看使用这个正则表达式:
\d\d\.\d\d\.\d\d.*$
\d
会搜索一个数字\.
用于匹配我们的日期匹配后的剩余行.
表示线的结束,确保我们匹配整条线。通常的建议不是使用正则表达式来验证日期时间字符串,而是使用标准库中的日期时格式化程序。在您的情况下,它可能不是绝对必要的,但我想将它作为一个选项呈现给您和任何阅读的人。
.*
上面的代码段打印:
$
潜在优势包括: