"#"
C ++で文字列内のすべての「#」文字を検索し、それらを「ハッシュ」に置き換えようとしていますが、正規表現は文字または"\#"
またはを認識しません"\\#"
。#を見つけるために私が何を入れなければならないかについてのアイデアはありますか?
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