如何在提升正则表达式中指定 }(右大括号)



我在我的程序中使用了boost 1.54库。我的任务是扩展字符串中的一些模式。

一个这样的例子是,如果在字符串中找到右大括号},请将其替换为>

我在代码中编写了以下正则表达式。

boost::wregex rightbrace(L"}"); // replace this by >
strText = boost::regex_replace(strText, rightbrace, L">");

我的代码编译正常。但是我的程序在遇到第一个语句时崩溃,它崩溃并出现以下异常

压缩

.exe中0x7599c41f时未处理的异常:Microsoft C++异常:boost::exception_detail::clone_impl> @ 0x0018fa54

由于}是一个特殊的符号,我用符号逃脱了它。

谁能告诉我这里有什么问题?

您已经转义了 boost 的},但您还需要转义编译器的转义字符。

boost::wregex rightbrace(L"\}");

最新更新