我正在使用 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
但是,当我尝试使用正则表达式时,似乎我做错了。什么都没发生。另外,我在哪里可以阅读更多关于正则表达式C ++ 11
的内容string fData(data.substr(2));
string replaceStr("10//20//1 3//4//5 5//2//1");
regex r("//"
regex_replace(fData,r," ");
但没有任何反应。
就像我之前说过的,如果你还可以指出一个我可以阅读更多关于这个的网页,除了答案。我有它工作,但我想开始使用正则表达式。
的由于 的
答案 0 :(得分:6)
regex_replace
不会对字符串进行就地编辑;它返回输出字符串。
例如:
auto out = regex_replace(fData,r," ");
在此示例中,out将是预期值的字符串(“10 20 1 3 4 5 5 2 1”)。 This cheat sheet非常有用(来自http://cpprocks.com/regex-cheatsheet/)。享受!