说明
项目中有一批告警图片,需要从图片的文件名中提取时间,确定它在视频中的位置。
代码
#include <iostream>
#include <regex>
using namespace std;
int main(int argc, char* argv[])
{
string text = "匹配到第一个时间:2022-12-20T182238.207+0800-7-1_0匹配到第二个时间:2023-01-07T182238.207+0800-7-1_0.jpg";
if (argc >= 2)
{
text.assign(argv[1]);
}
regex pattern("\\d+-\\d+-\\d+T\\d+\\.[0-9]{3}");
smatch results;
while (regex_search(text, results, pattern))
{
cout << results.str().replace(10, 1, " ").insert(13, ":").insert(16, ":") << endl;
text = results.suffix().str();
}
return 0;
}
输出
2022-12-20 18:22:38.207
2023-01-07 18:22:38.207
参考
# 菜鸟教程
https://www.runoob.com/regexp/regexp-syntax.html