我想用C++在Begin Triggerblock Fri Apr 28 16:19:15 2023这段字符串中找到年月日小时分钟秒信息,秒支持小数
时间: 2024-03-10 09:44:39 浏览: 18
你可以使用C++标准库中的正则表达式(regex)来匹配这段字符串中的时间信息。下面是一个示例代码:
```c++
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string str = "Begin Triggerblock Fri Apr 28 16:19:15.123 2023";
std::regex pattern("(\\w{3}) (\\w{3}) (\\d{2}) (\\d{2}):(\\d{2}):(\\d{2}(\\.\\d{1,3})?) (\\d{4})");
std::smatch match;
if (std::regex_search(str, match, pattern)) {
std::cout << "Year: " << match[8].str() << std::endl;
std::cout << "Month: " << match[2].str() << std::endl;
std::cout << "Day: " << match[3].str() << std::endl;
std::cout << "Hour: " << match[4].str() << std::endl;
std::cout << "Minute: " << match[5].str() << std::endl;
std::cout << "Second: " << match[6].str() << std::endl;
}
return 0;
}
```
这段代码会输出以下内容:
```
Year: 2023
Month: Apr
Day: 28
Hour: 16
Minute: 19
Second: 15.123
```
注意,正则表达式中的`(\\.\\d{1,3})?`部分用于匹配秒后面可能存在的小数部分,其中`\.`表示匹配小数点,`\\d{1,3}`表示匹配1到3位数字,`?`表示该部分可选。