使用C++的正则表达式
Regular Expression using C++
我想创建一个正则表达式,它只包含输入字符串[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]+$" );
我能从你的问题中理解的是,你只想输入那些选择字符的字符串
据我所知,正则表达式是正确的
但您需要逐个比较字符串,因为如果不这样做,您可能会得到与现在类似的结果。。。
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 用C++编写正则表达式的正确方法是什么?
- 如何从Stroustrup的C++书中解释这个正则表达式?
- 为什么这个正则表达式C++在括号表达式中抛出无效范围异常?
- C++:匹配正则表达式,什么是匹配?
- C++:正则表达式匹配代码,打印多个匹配项?