我试图在 C++ 中的字符串中查找所有“#”字符并将它们替换为“hash”,但正则表达式无法识别字符"#"
or"\#"
或"\\#"
。知道我必须放什么才能找到#吗?
std::string local = std::regex_replace(test, "#", "hash");
正如 Robert Harvey 建议的那样,使用 std::sting::replace 效果很好。它期望一个索引而不是一个字符来替换。因此,您必须将它与类似 `std::string::find 之类的东西结合使用,如下所示:
int index;
while( (index = str.find("#') != std::string::npos) {
str.replace(index, 1, "hash");
}
您可以使用相同的想法来匹配更复杂的字符串,因此如果您不需要模式替换,这将起作用。
在此处运行示例:http: //ideone.com/WqDZAl