C++正则表达式字符类不匹配

Lim*_*eng 6 c++ regex character-class

根据我的研究,表达式"[:alpha:]"将匹配任何字母字符,但表达式只匹配小写字符而不是大写字符.我不确定它有什么问题.

std::regex e ("[:alpha:]");
if(std::regex_match("A",e))
     std::cout<<"hi";
  else
     std::cout<<"no";
Run Code Online (Sandbox Code Playgroud)

gsa*_*ras 5

改变这个:

std::regex e ("[:alpha:]");
Run Code Online (Sandbox Code Playgroud)

至:

std::regex e ("[[:alpha:]]");
Run Code Online (Sandbox Code Playgroud)

正如Adrian所说:请注意,类名中的括号是打开和关闭类定义的括号.例如:[[:alpha:]]是一个匹配任何字母字符的字符类.阅读更多参考文献.

  • @Sandburg 否:2 个括号,而不是 3 个。并且不要忘记转义连字符 (-)。所以你写[[:alpha:].\-+/*]。 (2认同)