0

我试图在 C++ 中的字符串中查找所有“#”字符并将它们替换为“hash”,但正则表达式无法识别字符"#"or"\#""\\#"。知道我必须放什么才能找到#吗?

std::string local = std::regex_replace(test, "#", "hash");
4

1 回答 1

0

正如 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

于 2013-02-19T18:03:48.250 回答