[英]boost regex error_stack exception thrown from regex_search
[英]boost regex exception thrown from constructor for .*{
Boost版本1.60.0 gcc 4.8.4
當我使用字符串.*{
構建boost :: regex對象時,出現一個異常,說明:
what(): Missing } in quantified repetition. The error occurred while parsing the regular expresion: '.*{>>>HERE>>>'.
當對象是boost::regex::extended
類型時發生此錯誤,但如果它是boost::regex::perl
不會發生。
因此,以下引發異常:
regString(".*{");
boost::regex reg_e(regString, boost::regex::extended);
但這不是:
regString(".*{");
boost::regex reg_p(regString, boost::regex::perl);
這是預期的行為還是錯誤?
如果可以預期,為什么? 什么是適當的解決方法?
{
在這種情況下是特殊字符,您需要對其進行轉義。
http://www.boost.org/doc/libs/1_60_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
請注意,在不可重復的上下文中使用“ {”和“}”字符將被視為普通文字:這與Perl 5.x行為匹配。 例如,在表達式“ ab {1”,“ ab1}”和“ a {b} c”中,大括號均被視為文字,並且不會出現錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.