如何在C ++中使用regex中的变量?

时间:2016-04-27 05:26:15

标签: c++ regex string

有一个字符串(来自stdin的输入)说inputString

我想要做的是匹配包含此变量字符串一部分的一些正则表达式。例如,如果输入字符串是stackoverflow,我想匹配stackoverflo[a-z]或说stack[a-z]overflow(即前5个字符,一些单个字符和其余输入)

我该怎么做?我想我可能需要在运行时生成另一个字符串,但不知道我该怎么做。

1 个答案:

答案 0 :(得分:3)

您只需使用普通std::string inserterasesubstr,连接....

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)) ...
相关问题