【C++】利用正则表达式快速分析时间

利用正则表达式快速分析字符串中的年月日,时分秒

  • ()括号是分组,意思是这组数据我要提取出来。
  • []括号是限制内容,[0-9]就是数字,还可以是[a-z][A-Z]。
  • {}括号是显示字符个数,4就是4个,1,2就是1个或者2个
#include <regex>

int main()
{
	std::string input = "2012-12-11 11:23:12";

	// 按照4位年,1~2位月日时分秒
	std::regex rex("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})");
	
	std::smatch m;
	if (std::regex_search(input, m, rex))
	{
		// 找到一个结果
		if (m.size() != 0)
		{
			std::cout << m.str() << std::endl;
			std::cout << m.str(1) << std::endl;
			std::cout << m.str(2) << std::endl;
			std::cout << m.str(3) << std::endl;
			std::cout << m.str(4) << std::endl;
			std::cout << m.str(5) << std::endl;
			std::cout << m.str(6) << std::endl;
		}
	}
}

代码执行效果:
image

posted on 2021-07-28 10:37  GiKoo  阅读(313)  评论(0)    收藏  举报

导航