在写正则表达式之前首先要包含
#include<regex>
想要将多个空格或换行变成一个空格或换行只需要两步
1、创建一个正则表达式对象
regex reg(R"(( )+|(\n)+)");
这里用了raw string 就对'\'使用转义字符啦。
2、使用regex_replace函数。
regex_replace(data, reg, "$1$2");
第三个参数$1$2就代表第一个、第二个匹配的字符组也就是( )和(\n),$1$2的个数n代表每个$1或$2的位置变为n个$1或$2
string data = "a /*annot*/a a\n\na \nb\n \n\n /*annot*/ b"; regex reg1(R"(( )+|(\n)+)"); string data1 = regex_replace(data, reg1, "$1$2"); cout << data1 << endl;