gpt4 book ai didi

c++11/regex - 搜索精确的字符串,转义

转载 作者:可可西里 更新时间:2023-11-01 17:56:37 29 4
gpt4 key购买 nike

<分区>

假设您有一个由用户提供的字符串。它可以包含任何类型的字符。例子是:

std::string s1{"hello world");
std::string s1{".*");
std::string s1{"*{}97(}{.}}\\testing___just a --%#$%# literal%$#%^"};
...

现在我想在一些文本中搜索 >> 的出现后跟输入字符串 s1其次是 << .为此,我有以下代码:

std::string input; // the input text
std::regex regex{">> " + s1 + " <<"};

if (std::regex_match(input, regex)) {
// add logic here
}

如果s1,这工作正常不包含任何特殊字符。但是,如果 s1有一些特殊字符,正则表达式引擎可以识别,它不起作用。

我怎样才能逃脱s1这样 std::regex将其视为文字,因此不解释 s1 ?换句话说,正则表达式应该是:

std::regex regex{">> " + ESCAPE(s1) + " <<"};

有没有像ESCAPE()这样的函数在 std

重要 我简化了我的问题。在我的真实案例中,正则表达式要复杂得多。因为我只是对 s1 这个事实有问题被解释,我遗漏了这些细节。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com