gpt4 book ai didi

c++ - 如何告诉 C++ 正则表达式被视为纯文本/转义所有字符

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:55 25 4
gpt4 key购买 nike

<分区>

我正在编写一个 C++ 函数来实现字符串替换。函数如下:

using namespace std;

string Replace(const string & str, const string & strOld,
const string & strNew, bool useRegex, bool caseSensitive)
{
regex::flag_type flag=regex::basic;
if(!caseSensitive)
flag |= regex::icase;

if(!useRegex)
// WHAT TO DO ?

std::regex rx(strOld,flag);
string output=regex_replace(str,rx,strNew);
return output;
}

它将 str 中所有出现的 strOld 替换为 strNew。我尝试使用 std::regexstd::regex_replace 来实现它。它在 useRegex 为真时运行良好。但是,如果 useRegexfalse,我无法告诉他们 strOld 只是一个普通字符串而不是正则表达式字符串。

例如,当我打电话时:

string output=Replace("hello.",".","?",false,true);

它返回 "??????" 而我希望它是 "hello?"

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