java - 正则表达式:如何在捕获单个组时匹配整个字符串
问题描述
我正在尝试使用正则表达式解析此文件名中的日期。
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
提前感谢您的任何建议。
解决方案
我认为这是一个更简单的正则表达式,可以解决您的问题,假设日期始终是 8 位数字。
选项1
如果您可以假设日期是文件名中唯一的 8 位字符串
^.*[^\d](\d{8})[^\d].*$
选项 2
如果你想假设它前面有一个“-”并且有一个“。” 后
^.*-(\d{8})\..*$
选项 3
如果你想假设它后面跟着 .txt
^.*(\d{8})\.txt.*$
推荐阅读
- binary - 评估 0xfb-0xfa
- visual-studio - 无法添加 TFS 服务器:“找不到方法:'Void Microsoft.VisualStudio.Services.Common.IssuedTokenCredential.set_TokenStorageUrl(System.Uri)'”
- c++ - Q3DSurface:半透明 QSurface3DSeries
- c# - 如何使用 Web API(cs 或 asp.net)调用 Powershell 脚本
- angularjs - ta-insert-video 嵌入视频,无重定向
- material-design - UE4 尝试创建材质或编辑预制材质时抛出错误 [SM5] metallib: Invalid bitcode file
- reactjs - 反应 div 样式未在渲染时更新
- python - 如何处理 cx_Oracle 连接内的 for 循环内的错误?
- react-native - 图标或图像 (PNG),哪个最具表现力?
- openlayers - Openlayers 5.3 如何重新加载 ImageWMS 源以显示来自服务器的更新数据