regex traits for glib::ustring

Hi there, I'm attempting to build an application which requires multibyte character support, for which I'm using the Glib::ustring, and needs also to use regex. From what I understand you need to tell boost regex exactly how to iterate over your strings. I've got as far as: typedef boost::match_results<Glib::ustring::iterator, std::allocator<gunichar> > umatch; typedef boost::reg_expression<Glib::ustring, boost::regex_traits<Glib::ustring> > uregex; //making the regex_match<ustring::iterator, std::allocator<gunichar>, ustring, regex_traits<ustring> >(str.begin(), str.end(), m, re); //where str is a ustring, re is a uregex and m is a umatch as defined above However I get the feeling I'm completely missing a trick, ie that's it's a lot more complex than this... I'm using boost 1.39 and glibmm 2.4. Could anyone provide any guidance on this, whether it's even possible without writing a lot of code, or possible alternatives? Many thanks, Simon

I'm attempting to build an application which requires multibyte character support, for which I'm using the Glib::ustring, and needs also to use regex.
From what I understand you need to tell boost regex exactly how to iterate over your strings.
I've got as far as:
typedef boost::match_results<Glib::ustring::iterator, std::allocator<gunichar> > umatch;
You could ditch the allocator parameter from that typedef.
typedef boost::reg_expression<Glib::ustring, boost::regex_traits<Glib::ustring> > uregex;
No the first parameter to the regex type is the *character type*, not a *string type*. Since Glib::ustring is a sequence of bytes, you could just use boost::regex here, but then that would not be Unicode and UTF-8 aware. To get full Unicode support in boost::regex you nead to use it in conjunction with the ICU library, see: http://www.boost.org/doc/libs/1_39_0/libs/regex/doc/html/boost_regex/ref/non... But I also note that Glib has a PCRE based regex engine of it's own, which may well provide you with what you need? HTH, John.
participants (2)
-
John Maddock
-
Simon Wibberley