C++ 正则表达式字符 class 不匹配
C++ regex character class not matching
根据我的研究,表达式“[: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:]]
是匹配任何字母字符的字符 class。在 ref.
阅读更多内容
你必须使用[[: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;
}
根据我的研究,表达式“[: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:]]
是匹配任何字母字符的字符 class。在 ref.
你必须使用[[: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;
}