c++ - 如何在 C++ 的正则表达式中使用变量?

标签 c++ regex string

关闭。这个问题需要details or clarity .它目前不接受答案。












想改进这个问题?通过 editing this post 添加详细信息并澄清问题.

6年前关闭。




Improve this question




有一个字符串(来自 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您想要,只需将其提供给 regex库函数...
std::regex re(regex_string);
std::smatch match;
if (std::regex_search(my_string_to_match_against, match, re)) ...

关于c++ - 如何在 C++ 的正则表达式中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36881001/

相关文章:

c - 为什么从 Linux 模块读取可以逐字符读取,但不能读取整个字符串

c++ - 如何在 C++ 中初始化对象的空数组?

c++ - 如何通过 cublasCreate() 减少巨大的时间成本(10 秒)?

c# - 删除转义序列不起作用

python - python中的复杂正则表达式匹配

ruby-on-rails - 如何返回 Ruby 字符串中最后一个斜杠 (/) 之后的所有内容

java - 字符串大小超过 int 的最大限制

string - 使用反射 SetString

c++ - 算术和赋值运算符重载 - 返回值、范围、组合表达式

c++ - Boost Signals2将插槽传递给成员函数以进行断开连接