有一个字符串(来自stdin的输入)说inputString
。
我想要做的是匹配包含此变量字符串一部分的一些正则表达式。例如,如果输入字符串是stackoverflow
,我想匹配stackoverflo[a-z]
或说stack[a-z]overflow
(即前5个字符,一些单个字符和其余输入)
我该怎么做?我想我可能需要在运行时生成另一个字符串,但不知道我该怎么做。
答案 0 :(得分:3)
您只需使用普通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)) ...