C++ 匹配并提取包括加中括号的日期时间的正则表达式

在C++中,你可以使用std::regex库来匹配包含日期和时间的字符串。以下是一个简单的例子,它展示了如何使用正则表达式来匹配形如[YYYY-MM-DD HH:MM:SS]的字符串。include <iostream>

#include <string>

#include <regex>

int main() {

std::string text = "The event will happen on [2023-04-01 14:30:00].";

std::regex datetime_regex(R"(\[(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})\])");

std::smatch matches;

if (std::regex_search(text, matches, datetime_regex) && matches.size() > 1) {

// 提取年、月、日、小时、分钟、秒

int year = std::stoi(matches[1].str());

int month = std::stoi(matches[2].str());

int day = std::stoi(matches[3].str());

int hour = std::stoi(matches[4].str());

int minute = std::stoi(matches[5].str());

int second = std::stoi(matches[6].str());

std::cout << "Year: " << year << std::endl;

std::cout << "Month: " << month << std::endl;

std::cout << "Day: " << day << std::endl;

std::cout << "Hour: " << hour << std::endl;

std::cout << "Minute: " << minute << std::endl;

std::cout << "Second: " << second << std::endl;

} else {

std::cout << "No datetime found." << std::endl;

}

return 0;

}

这段代码使用了std::regex_search来搜索文本中符合正则表达式的部分,并且提取了年、月、日、小时、分钟和秒。如果找到匹配,它们将被转换为整数并输出。如果没有找到匹配,将输出"No datetime found."。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 08:44:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 08:44:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 08:44:03       62 阅读
  4. Python语言-面向对象

    2024-07-16 08:44:03       72 阅读

热门阅读

  1. C# 继承

    2024-07-16 08:44:03       31 阅读
  2. 设计模式-三大分类

    2024-07-16 08:44:03       19 阅读
  3. JVM常见面试题2

    2024-07-16 08:44:03       24 阅读
  4. GitHub热门开源项目-2024版

    2024-07-16 08:44:03       27 阅读
  5. 浅谈微服务

    2024-07-16 08:44:03       20 阅读
  6. 深入理解MySQL中的MyISAM与InnoDB存储引擎

    2024-07-16 08:44:03       22 阅读
  7. 值的注意React中的一些默认行为和优化(一)

    2024-07-16 08:44:03       23 阅读
  8. 【机器学习】马尔可夫模型与隐马尔科夫模型

    2024-07-16 08:44:03       18 阅读
  9. 如何快速学习 Oracle 数据库?

    2024-07-16 08:44:03       19 阅读