【发布时间】:2019-11-01 10:45:17
【问题描述】:
我正在尝试使用正则表达式解析此文件名中的日期。
LBX845656_PayOnline_0528-20191429.txt.052819220054.bak
我遇到的问题是我需要正则表达式来匹配整个文件名,同时捕获一个包含日期的组。
我编写了这个正则表达式来捕获捕获组 1 中的日期:
([0-9]{0,8}(?=\.txt))
在线使用正则表达式测试器,这似乎从我正在寻找的文件名中捕获了正确的字符串,但我不知道如何让正则表达式匹配整个字符串。
这是我要返回的内容
FULL MATCH: LBX845656_PayOnline_0528-**20191429**.txt.052819220054.bak
CAPTURE GROUP 1: 20191429
提前感谢您的任何建议。
【问题讨论】:
-
\w+_\w+_\d+-([0-9]{0,8}(?=\.txt)).txt.\d+.bak至少会匹配您当前拥有的内容。但不确定该字符串还有哪些其他变体 -
“匹配整个字符串”是什么意思?
-
如果要得到与
[0-9]{0,8}(?=\.txt)匹配的字符串,不需要匹配整个字符串,只需要matcher.find() -
@WiktorStribiżew OP 说他们需要匹配整个字符串,如果匹配,则获取日期部分。这是 OP 的要求,而不是正则表达式引擎的要求。 Imo 你太早结束了讨论,而且你引用的问题没有涵盖那个具体的话题。