string input("Have a *great* day");
regex re("(.*)[*](.+?)[*](.*)");
string output;
cin >> input; //Doesn't work
//output = regex_replace(input, re, "$1<p>$2</p>$3");
regex_replace(back_inserter(output), input.begin(), input.end(), re, "$1<p>$2</p>$3");
cout << output << endl;
当我在没有cin的情况下运行它时,我得到了我期望的结果: “有一个&lt; great&gt; day”
然而,当我使用cin并输入与输入完全相同的字符串时,我得到: “具有”
只要遇到空格,表达式就会结束
发生了什么事?
答案 0 :(得分:2)
由于cin>>input
提取单个单词而不是整个句子,因此input
仅获得反映您输出的整个单词Have
的{{1}}。只需将just Have a *great* day
替换为
cin>>input
需要一整行。