我有以下问题:我必须构造匹配键的正则表达式。有效密钥以G,C,P或W开头,并且在这些可能的字母之一之后有五个字符是有效的十六进制符号,即它们中的每一个都可以是0到9之间的数字或者是'之间的字母'。 a'和'f'(混合使用大写和小写字母也是有效键)。我正在使用CodeBlocks 13.12和gcc 4.7,我在编译器选项中启用了这个:“让g ++遵循C ++ 11 ISO C ++语言标准”。我认为一切都是正确的,但它不会编译许多错误,而且所有错误都来自“undefined reference to ...”类型。这是源代码:
#include <iostream>
#include <boost/regex.hpp>
#include <string>
using namespace boost;
int main()
{
regex mypattern("([GCPW])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])");
std::string myinput;
std::cin >> myinput;
if( regex_match( myinput, mypattern ) )
std::cout << "SUCCESS!\n";
else
std::cout << "ERROR!\n";
return 0;
}