我正在编写一个 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;
}
它替换所有出现的strOld
in str
to strNew
。我试图使用std::regex
并std::regex_replace
实现它。useRegex
如果是真的,它会很好地工作。但是,如果useRegex
是false
,我无法告诉他们这strOld
只是一个普通字符串而不是正则表达式字符串。
例如,当我打电话时:
string output=Replace("hello.",".","?",false,true);
它"??????"
在我期望的时候返回"hello?"
。