This question already has answers here:
Trouble with C++ Regex POSIX character class

(3个答案)


2年前关闭。




根据我的研究,表达式“[:alpha:]”将与任何字母字符匹配,但是该表达式仅与小写字符匹配,而不与大写字符匹配。我不确定这是怎么回事。
std::regex e ("[:alpha:]");
if(std::regex_match("A",e))
     std::cout<<"hi";
  else
     std::cout<<"no";

最佳答案

更改此:

std::regex e ("[:alpha:]");

至:
std::regex e ("[[:alpha:]]");

正如Adrian所说:请注意,类(class)名称中的括号是在打开和关闭类(class)定义的括号之外的。例如:[[:alpha:]]是与任何字母字符匹配的字符类。在ref中阅读更多内容。

关于c++ - C++正则表达式字符类不匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50773253/

10-14 13:58
查看更多