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

C++ regex character class not matching

本文关键字:不匹配 字符 正则表达式 C++      更新时间:2023-10-16

根据我的研究,表达式"[: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所说:请注意,类名中的括号是打开和关闭类定义的括号的附加项。例如:[[:alpha:]]是匹配任何字母字符的字符类。在参考中阅读更多内容。

你必须使用[[: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;
}