On Sat, 23 Jun 2012 18:56:24 +0200, simendsjo <[email protected]> wrote:
On Sat, 23 Jun 2012 18:50:05 +0200, Chad J
<chadjoan@__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);
}