Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2005-07-18 05:11:05


>I found another problem, this time, I'm afraid, without a workaround:
>
> regex: (?<=^).{2}|(?<=^...).{2}
> string: 1234567890
>
> I get, using boost::regex, only one match:
>
> 12
>
> whereas, for example, .Net Regex engine expectedly finds
>
> 12
>
> and
>
> 45
>
> Is this a bug? If so, any hopes for fixing it in 1.33?

Hmm, I guess it is a bug, and it's unfixable for 1.33 - it's too close to
release for one thing, for another I don't know how to fix it at present: it
happens because once the "12" match has been found, searching continues from
"34567890", so the matcher doesn't "know" that there are preceding
characters before that, that could be matched with the lookbehind. I'd have
to start introducing new API's, and some new internals for the regex
iterators in order to fix this :-(

Thanks for the report, as soon as 1.33 is out I'll try and deal with this.

John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net