私は正規表現について学び始めており、C++でコードを書いています 私の仕事は:与えられた文字列の各桁を'@'
文字で置き換える関数を実装します。C++の正規表現で dの代わりに dを書く必要があるのはなぜですか?
私の例では、input
文字列= "12 points"
です。
数字が一致するのに\d
を使用する必要があることがわかりました。私はこれを使用しようとしました:std::regex_replace(input,std::regex("\d"),"@");
しかし、それは動作していません:output
はまだ"12 points"
です。
は、その後、私はインターネットを検索し、結果は次のとおりです。output
と std::regex_replace(input,std::regex("\\d"),"@");
は"@@ points"
です。
"\\d"
は何ですか?
2つのバックスラッシュを使用する必要はありません。文字列リテラルの 'R"(\ d) "'を使用します。リテラルのエスケープを作成するために必要なのはリテラルのバックスラッシュです。 –