This question already has answers here:
Trouble with C++ Regex POSIX character class
(3个答案)
2年前关闭。
根据我的研究,表达式“[:alpha:]”将与任何字母字符匹配,但是该表达式仅与小写字符匹配,而不与大写字符匹配。我不确定这是怎么回事。
至:
正如Adrian所说:请注意,类(class)名称中的括号是在打开和关闭类(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/