regex_replace问题

时间:2013-02-08 19:34:15

标签: c++ regex string c++11 visual-studio-2012

我正在使用 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," ");

但没有任何反应。

就像我之前说过的,如果你还可以指出一个我可以阅读更多关于这个的网页,除了答案。我有它工作,但我想开始使用正则表达式。

由于

1 个答案:

答案 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/)。享受!