$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: gj_uestc (gj_uestc_at_[hidden])
Date: 2008-08-11 04:31:49
 Ok, it works for me now. Thanks a lot!
 
 
 
å¨2008-08-11 11:53:40ï¼"Andrea Denzler" <andrea_at_[hidden]> åéï¼
Juan, I have no problems with this sample code
 
#include "stdafx.h"
 
void test(wstring str)
{
            u32regex expression = make_u32regex("^([\\x0-\\x7f]+)$"); 
            wsmatch what; 
            if(u32regex_match(str, what, expression)) 
            { 
                        // what[0] contains the whole string 
                        // what[1] contains ascii text
                        wcout << what[1] << _T(" is ascii") << endl;
            } else {
                        wcout << str << _T(" is not ascii") << endl;
            }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
            test(_T("Hello World!"));
            test(_T("ôöò"));
            return 0;
}
 
 
Hello World! is ascii
¶÷â is not ascii
 
 
Da:boost-users-bounces_at_[hidden] [mailto:boost-users-bounces_at_[hidden]] Per conto di gj_uestc
Inviato: lunedì 11 agosto 2008 5.35
A:boost-users_at_[hidden]; john_at_[hidden]
Oggetto: Re: [Boost-users] [boost.regex]Does boost:u32regexrecognize theunicode named blocks like "\p{IsBasicLatin}"?
 
 Thanks John,
     I have used "[\x0-\x7f]" instead of "/p{IsBasicLatin}" to construct the regular expression (expression=boost::make_u32regex("[\\x0-\\x7f]" )). The regular expression has been  constructed correctly but it cannot accecpt instance string either "a" or "	" (boost:u32match("a",expression)==false).I am wondering whether it has something to do with unicode? I have tried expression=boost::regex("[\\x0-\\x7f]" )); then I can pass the string "a" but not string "	"(boost:match("a",expression)==true), which I think is reaonable for boost:regex since it does not support the unicode. So my point is: why the boost:u32match doesn't work well?
 
Thanks®ards
Juan
 
 
 
 
å¨2008-08-08 16:48:38ï¼"John Maddock" <john_at_[hidden]> åéï¼
>John Maddock wrote:
>>> gj_uestc wrote:
>>>>> Hi,all
>>>>>    Nowadays I am using boost:u32regex to do some regular expression
>>>>> processing.But it seems that "/p{IsBasicLatin}"is not a accessable
>>>>> expression by boost::make_u32regex(tmp).Does boost:regex not suppor
>>>>> the named unicode blocks or I have to pass some other flags to the
>>>>> library? Now I was using the defult flag wich indicate using perl
>>>>> syntactic.
>>> 
>>> The named properties/character classes supported are here:
>>> http://www.boost.org/doc/libs/1_35_0/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
>>> 
>>> As you can see I haven't added support for language-specific blocks
>>> yet :-(
> 
>I forgot to mention that \p{IsBasicLatin} is the same as: [\x0-\x7f], 
>likewise the other continuous blocks can be expressed in the same way.
> 
>HTH, John. 
> 
e100åçä¸å¡ï¼æ½åå¿å¨å¤§å¥ï¼æåè¿è¿ï¼èµ¶å¿«è¡å¨ï¼