我想创建一个正则表达式,它将只包含输入字符串 [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 语法。所以我认为你不需要管道字符。 “集合中的任何字符”[]
语法不使用管道。其次,如果你想匹配整个输入字符串(而不是它的任何部分),你需要使用 ^ 和 $ anchor
尝试:
std::regex( "^[GyMdDFEhHmsSwWazZ]+$" );
关于c++ - 使用 C++ 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58722965/