使用C++的正则表达式

Regular Expression using C++

本文关键字:正则表达式 C++ 使用      更新时间:2023-10-16

我想创建一个正则表达式,它只包含输入字符串[G|y|M|d|d|F|E|h|h|M|s|s|w|w|a|z|z],所以我从下面得到了一些代码:

std::regex Reg = regex("[G|y|M|d|D|F|E|h|H|m|s|S|w|W|a|z|Z]");

我的问题是,我的正则表达式仍然不正确,因为我的输入字符串可以包含其他字符和上面组中的字符,例如:

std::string myInputString = Gx //correct

哪个Gx一定是错误的

我不是C++正则表达式库的用户,但我知道它支持ECMAScript语法。所以我认为你不需要管道角色。"集合中的任何字符"[]语法不使用管道。其次,如果你想匹配整个输入字符串(而不是它的任何部分(,你需要使用^和$anchors

尝试:

std::regex( "^[GyMdDFEhHmsSwWazZ]+$" );

我能从你的问题中理解的是,你只想输入那些选择字符的字符串

据我所知,正则表达式是正确的

但您需要逐个比较字符串,因为如果不这样做,您可能会得到与现在类似的结果。。。