Как указать} (закрывающая скобка) в регулярном выражении boost?

Я использую библиотеку Boost 1.54 в моей программе. Моя задача — развернуть несколько шаблонов в строку.

Одним из таких случаев является закрывающая скобка } находится в строке заменить его >

Я написал следующее регулярное выражение в моем коде.

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

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

Мой код компилируется нормально. Но моя программа аварийно завершает работу, когда она сталкивается с первым оператором, она падает со следующим исключением

Необработанное исключение в 0x7599c41f в Compress.exe: исключение Microsoft C ++: boost :: exception_detail :: clone_impl> @ 0x0018fa54

поскольку } это специальный символ, с которым я избежал \ условное обозначение.

Кто-нибудь может сказать мне, в чем здесь проблема?

0

Решение

Вы избежали } для повышения, но вам нужно избежать \ escape char для компилятора.

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]