$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Keno.Basedow_at_[hidden]
Date: 2004-12-14 08:18:59
Thanks a lot! Works very fine.
---
Keno Basedow
GEDIS GmbH
Sophienblatt 100
D-24114 Kiel
Fon: +49-431-60051-24 (-0)
Fax: +49-431-60051-11
basedow_at_[hidden]
|---------+----------------------------------->
| | "John Maddock" |
| | <john_at_[hidden]>|
| | Gesendet von: |
| | boost-users-bounces_at_list|
| | s.boost.org |
| | |
| | |
| | 14.12.2004 13:58 |
| | Bitte antworten an |
| | boost-users |
| | |
|---------+----------------------------------->
>------------------------------------------------------------------------------------------------------------------------------|
| |
| An: <boost-users_at_[hidden]> |
| Kopie: |
| Thema: Re: [Boost-users] Using zero characters in regular expessions |
>------------------------------------------------------------------------------------------------------------------------------|
> i try to use the regex library for binary data.
> I tried this code:
>
> string h("\x81\x05\x00\x48");
> regex e2("\x81\x05\x00(.)");
> smatch m;
> if (regex_match(h, m, e2))
> {
> cout << "0. matched=" << (m[0].matched?"true":"false") <<
endl;
> cout << "0. match length=" << m[0].str().size() << endl;
> cout << "0. match character=" << m[0].str() << endl;
> cout << "1. matched=" << (m[1].matched?"true":"false") <<
endl;
> cout << "1. match length=" << m[1].str().size() << endl;
> cout << "1. match character=" << m[1].str() << endl;
> }
The thing is if you pass a const char* to either basic_string or
boost::regex then it will assume that the string is null-terminated, which
as you have found does the wrong thing in this case. In both cases use the
constructor that takes a string length as well as a pointer:
string h("\x81\x05\x00\x48", 4);
regex e2("\x81\x05\x00(.)", 7, regex::perl);
Hope this helps,
John.
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://listarchives.boost.org/mailman/listinfo.cgi/boost-users