gpt4 book ai didi

C++ boost 正则表达式日期错误

转载 作者:行者123 更新时间:2023-11-30 05:22:35 26 4
gpt4 key购买 nike

我对 boost 正则表达式库很陌生。下面的示例代码用于检查输入的日期是否遵循 YYYY-MM-DD 格式。但是,似乎有一个错误正则表达式。它总是返回'sfalse。*

  • I am running the console application on windows.

*正则表达式取自 here

bool regexValidate(string teststring)
{
boost::regex ex("^(20\\d{2})(\\d{2})(\\d{2})");
if (boost::regex_match(teststring, ex)) {
cout << "true";
return true;
}
else {
return false;
}
}
int main()
{


string teststr = "2016-05-15";


cout << teststr << " is ";
if (regexValidate( teststr)) {
cout << " valid!" << endl;
}
else {
cout << " invalid!" << endl;
}

system("PAUSE");
return 0;
}

最佳答案

你快到了;只需在您的正则表达式中添加连字符:

"^(20\\d{2})-(\\d{2})-(\\d{2})"

顺便说一句,这不会解析 2000 年之前或 2099 年之后的日期。最后没有明确的字符串结尾 ($)。更像是:

"^(\\d{4})-(\\d{2})-(\\d{2})$"

...我认为应该让你在近几个世纪的任何地方都表现出色 ;-)

关于C++ boost 正则表达式日期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39554256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com