用c++的正则表达式匹配括号是会出现
terminate called after throwing an instance of 'std::regex_error'
what(): regex_error
原因是c++正则默认使用的是ECMAScript语法不支持匹配括号,改为std::regex_constants::basic 即可
regex("\${.*\}",std::regex_constants::basic)
详细语法
它们如下表所示:
文法 | 说明 |
---|---|
ECMAScript | ECMAScript正则表达式语法[2],默认选项 |
basic | 基础POSIX正则表达式语法[3] |
extended | 扩展POSIX正则表达式语法[4] |
awk | awk工具的正则表达式语法[5] |
grep | grep工具的正则表达式语法[6] |
egrep | grep工具的正则表达式语法[7] |