1

我对 boost 中的以下正则表达式有疑问:

const boost::regex eComment("^\/\*[\s\S]*?\*\/|^\/\/");

当我使用此正则表达式运行程序时,它会因消息而中止:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::regex_error> >'

what():  Invalid preceding regular expression prior to repetition operator.  
The error occured while parsing the regular expression: '^/*[sS]*?*>>>HERE>>>/|^//'.

此正则表达式应在*.cpp文件中找到带有注释的行,但如果该行中有代码则应跳过。

4

1 回答 1

3

我认为问题在于您忘记转义反斜杠字符。每个反斜杠都应该像 \\s\\S 而不是 \s\S 那样加倍

希望能帮助到你

于 2012-09-28T12:33:07.040 回答