我在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
文件中找到带注释的行,但如果该行中有代码,则应跳过。
答案 0 :(得分:3)
我认为问题是你忘了逃避反斜杠字符。每个反斜杠应加倍,如\\ s \\ S而不是\ s \ S
希望有所帮助