2013-09-27 4 views
0

Я использую boost 1.54 в моей программе. Моя задача - расширить некоторые шаблоны в строке.Как указать} (Закрытие скобки) в форсированном регулярном выражении?

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

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

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

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

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

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

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

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

ответ

1

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

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

Спасибо за ответ @Jonathan Potter. Он решил мою проблему –

 Смежные вопросы

  • Нет связанных вопросов^_^