String & delimit
Pragma
ericanderton at yahoo.removeme.com
Tue Apr 3 09:45:46 PDT 2007
Dié wrote:
> Hello
>
> I have this string:
>
> blablabla thisis a string example <i_need_this_text>
>
> With Tango.text.Util i think i can use "delimit" function for extracting the test "i_need_this_text".
>
> delimit("blablabla thisis a string example <i_need_this_text>","<>")
>
> But i found in http://www.dsource.org/projects/tango/docs/current/tango.text.Util.html
>
> the delimit declaration:
>
> T[][] delimit (T)(T[] src, T[] set);
>
> and now how can i correctly use this function with template? I suppose i must declare e template like this
>
> template TText(T){alias T* t;}
>
> but i dont understand how use the template with the delimit function.
>
> Someone can explain me?
> Thank you!
>
First of all, the template uses Inline Function-Template Instantiation (IFTI); the compiler will *deduce* what 'T' is
based on the arguments you pass to delimit(). Just call it like "delimit(string1,string2)" and it'll work fine.
Second, let's look at the documentation for the delimit() function:
> # T[][] delimit (T)(T[] src, T[] set);
> Split the provided array wherever a delimiter-set instance is found,
> and return the resultant segments. The delimiters are excluded from
> each of the segments. Note that delimiters are matched as a set of
> alternates rather than as a pattern.
Arguably, this is not the best description in the world. It makes much more sense after seeing an example of what it does:
auto x = delimit("One,Two;Three.Four&Five",",;.&");
The variable x will now be an array of strings, containing "One","Two","Three","Four", and "Five" in that order. It's
important to note that the second argument of the delimit() function is used as a series of single-character delimiters
that are used to split up the source string. The delimiters themselves are not returned.
--
- EricAnderton at yahoo
More information about the Digitalmars-d
mailing list