phobos and splitting things... but not with whitespace.

Chad J chadjoan at __spam.is.bad__gmail.com
Sat Jun 23 10:24:16 PDT 2012


On 06/23/2012 01:02 PM, simendsjo wrote:
> On Sat, 23 Jun 2012 18:56:24 +0200, simendsjo <simendsjo at gmail.com> wrote:
>
>> On Sat, 23 Jun 2012 18:50:05 +0200, Chad J
>> <chadjoan at __spam.is.bad__gmail.com> wrote:
>>
>>> Looking for findSplit?
>>> http://dlang.org/phobos/std_algorithm.html#findSplit
>>> Cool, that's what I want!
>>> Now if I could find the elegant way to remove exactly one line from
>>> the text without scanning the text after it...
>>
>> Isn't that exactly what findSplit does? It doesn't have to search the
>> rest of the string after the match, it just returns a slice of the
>> rest of the array (I guess - haven't read the code)
>
>
> import std.stdio, std.algorithm;
>
> void main() {
> auto text = "1\n2\n3\n4";
> auto res = text.findSplit("\n");
>
> auto pre = res[0];
> assert(pre.ptr == text.ptr); // no copy for pre match
>
> auto match = res[1];
> assert(match.ptr == &text[1]); // no copy for needle
>
> auto post = res[2];
> assert(post.ptr == &text[2]); // no copy for post match
> assert(post.length == 5);
> }

Close... the reason findSplit doesn't work is because a new line could 
be "\n" or it could be "\r\n" or it could be "\r".


More information about the Digitalmars-d-learn mailing list