4

私はC++ 11を使用しています(Windows 7 64ビット、Visual Studio 2012)

ループを使用して、一部の部分文字列を別の部分文字列に置き換えています。二重スラッシュ (//) で区切られた数字を持つファイルがあります。例えば:

10//20//1 3//4//5 5//2//1 to 10 20 1 3 4 5 5 2 1

ただし、 regexで実行しようとすると、何か間違っているようです。何も起こりません。また、正規表現 C++ 11の詳細についてはどこで読むことができますか

string fData(data.substr(2));
string replaceStr("10//20//1 3//4//5 5//2//1");
regex r("//"
regex_replace(fData,r," ");

しかし、何も起こりません。

前に言ったように、答えの他に、これについてもっと読むことができるウェブページを指摘していただければ. 私はそれを機能させましたが、正規表現の使用を開始したかったのです。

ありがとう

4

1 に答える 1

6

regex_replace文字列のインプレース編集は行いません。出力文字列を返します。

例えば: auto out = regex_replace(fData,r," ");

この例では、out は期待される値 ("10 20 1 3 4 5 5 2 1") の文字列になります。このチート シートは非常に便利です ( http://cpprocks.com/regex-cheatsheet/から)。楽しみ!

于 2013-02-08T19:40:03.707 に答える