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