6

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

std::regex e ("[:alpha:]");
if(std::regex_match("A",e))
     std::cout<<"hi";
  else
     std::cout<<"no";
4

2 回答 2

5

改变这个:

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

至:

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

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

于 2018-06-09T10:32:05.240 回答
2

你必须使用[[:alpha:]]

网上例子

#include <iostream>
#include <string>
#include <regex>
using namespace std;

int main() {
    std::regex e ("[[:alpha:]]");
if(std::regex_match("A",e))
     std::cout<<"hi";
  else
     std::cout<<"no";
    return 0;
}
于 2018-06-09T10:32:21.307 回答