如何在C++的正则表达式中使用变量
How to use a variable in regex in C++?
有一个字符串(来自stdin
的输入),比如inputString
。
我想做的是匹配一些包含此变量字符串一部分的正则表达式。例如,如果输入字符串stackoverflow
,我想匹配stackoverflo[a-z]
或说stack[a-z]overflow
(即前 5 个字符、一些单个字符和其余输入)。
我该怎么做?我想,可能我需要在运行时生成另一个字符串,但不确定我将如何做到这一点。
你只使用普通的std::string
insert
,erase
,substr
,连接。
std::string regex_string = inputString.substr(0, inputString.size() - 1) + "[a-z]";
...
string regex_string = inputString;
regex_string.insert(5, "[a-z]");
您必须决定如何计算要复制,擦除或插入的索引。
一旦你有了你想要的regex_string
,只需将其提供给正则表达式库函数......
std::regex re(regex_string);
std::smatch match;
if (std::regex_search(my_string_to_match_against, match, re)) ...
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 如何从字符串变量为正则表达式构建原始字符串
- 如何在 QT 框架工作C++中使用变量作为正则表达式模式
- 如何在C++的正则表达式中使用变量
- 将正则表达式存储在变量(std::string)中
- 将变量名与正则表达式c++一起使用