如何在boost正则表达式中指定}(Closing brace)?

时间:2013-09-27 05:34:59

标签: c++ boost-regex widestring

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

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

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

boost::wregex rightbrace(L"\}"); // replace this by >

strText = boost::regex_replace(strText, rightbrace, L">");

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

  

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

由于}是一个特殊符号,因此我使用\符号对其进行了转义。

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

1 个答案:

答案 0 :(得分:1)

你已经转义了}以获得提升,但你也需要为编译器转义\转义字符。

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