How to split a string/array with multiple separators?

Marc Schütz via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Dec 16 07:27:22 PST 2015


On Wednesday, 16 December 2015 at 14:47:26 UTC, Dragos Carp wrote:
> On Wednesday, 16 December 2015 at 14:18:28 UTC, Borislav 
> Kosharov wrote:
>> I want to split a string using multiple separators. In 
>> std.array the split function has a version where it takes a 
>> range as a separator, but it works differently than what I 
>> want. Say if I call it with " -> " it will search for the 
>> whole thing together. I want to pass split a list of 
>> separators say [":", ",", ";"] and if it finds any of those to 
>> split it.
>>
>> Sorry if this questions is stupid but I cant find how to do it.
>
>
> void main()
> {
>
>    import std.stdio: writeln;
>    writeln("abc,def;ghi".splitter!(a => 
> !":,;".find(a).empty).array);
> }

The call to `array` is unnecessary in this example, and you can 
use the shorter `canFind`:

    writeln("abc,def;ghi".splitter!(a => ":,;".canFind(a)));


More information about the Digitalmars-d-learn mailing list