std.regex replaceFirst vs. replaceFirstInto
Chris via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 22 05:40:02 PDT 2015
On Friday, 22 May 2015 at 11:08:38 UTC, Chris wrote:
> On Friday, 22 May 2015 at 11:02:12 UTC, Dmitry Olshansky wrote:
>> On 21-May-2015 14:51, Chris wrote:
>>> std.regex.replaceFirst uses
>>>
>>> https://github.com/D-Programming-Language/phobos/blob/master/std/regex/package.d#L734
>>>
>>>
>>> which returns the input, if no match is found. This is
>>> "safe", because
>>> the worst thing that can happen is that you get the input
>>> back unchanged.
>>>
>>> std.regex.replaceFirstInto, on the other hand, uses
>>>
>>> https://github.com/D-Programming-Language/phobos/blob/master/std/regex/package.d#L700
>>>
>>>
>>> which may throw an exception like this:
>>>
>>> phobos/std/regex/package.d(993): invalid submatch number 1*
>>>
>>> Shouldn't this be reflected in the documentation? At the
>>> moment, the
>>> documentation of replaceFirstInto says:
>>>
>>> "A variation on replaceFirst that instead of allocating a new
>>> string on
>>> each call outputs the result piece-wise to the sink."
>>>
>>> But it doesn't mention the difference in behavior (i.e.
>>> return input vs.
>>> exception). In other words, with replaceFirstInto, you have
>>> to make sure
>>> that you can indeed replace.
>>>
>>> The same probably goes for replaceAll / replaceAllInto.
>>>
>>> *Exception stems from
>>> https://github.com/D-Programming-Language/phobos/blob/master/std/regex/package.d#L962
>>>
>>
>> Looks like a bug, no need to document this - please post it to
>> bugzilla.
>> A simple test case would help fixing it.
>>
>> Thanks!
>
> Ok. Do you have a link for me?
Excuse my ignorance, but how do I file a bug on bugzilla?
More information about the Digitalmars-d
mailing list