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 回答