【发布时间】:2018-02-10 09:45:11
【问题描述】:
std::regex_match() 未完成(GCC 5.4.0 20160609、x86_64、Ubuntu 16.04)。
但它适用于某些在线编译器:http://cpp.sh/ 可以,例如。
代码尝试将 INI 样式的节标题与可能的“#”-comment 匹配。
#include <regex>
int main(int argc, char *argv[])
{
std::regex headerPattern("([[:blank:]]*\\[[[:blank:]]*((?:[[:blank:]]*[^[:space:]]+[[:blank:]]*?)+)[[:blank:]]*\\][[:blank:]]*(?:#(?:[^[:space:]]*[[:blank:]]*)*)?)");
std::smatch headerMatch;
std::string l("[Hdr 100] # ------------ 22 22 4444 88888888 333");
return std::regex_match(l, headerMatch, headerPattern) ? 0 : 1;
}
构建:
g++ -std=c++11 main.cpp -o main
代码真的有问题吗?
【问题讨论】: