tow*_*owi 12 c++ regex replace c++11
从阅读FCD regex_replace(28.11.4)我只能猜测该函数还可以使用原始字符串的一部分进行替换?我不能用我的gcc测试它,这是正确的吗?
using namespace std;
regex rx{ R"((\d+)-(\d+))" }; // regex: (\d+)-(\d+)
cout << regex_replace("123-456", rx, "b: $2, a:$1");
// "b: 456, a:123"
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我认为$1并$2指"()"捕获组(而不是\1和\2像其他地方).
更新.所以,我想这是一个由两部分组成的问题
$n的默认ECMAScript语法是什么?还是\n?C++ 2011 FDIS中的表139列出了两个常量,可用于影响格式字符串中使用的规则regex_replace,format_default和format_sed.format_default被描述为使用"ECMA-262中的ECMAScript替换函数使用的规则,第15.5.4.11节String.prototype.replace".该标准确实表明$用于反向引用.见:ECMA-262
使用该format_sed标志代替使用POSIX中sed实用程序的规则.Sed似乎不支持$反向引用.
| 归档时间: |
|
| 查看次数: |
2316 次 |
| 最近记录: |