Template:Stringsplit is a convenience wrapper for the split function in Module:String2.

The split function splits text at boundaries specified by separator and returns the chunk for the index idx (starting at 1). It can use positional parameters or named parameters (but these should not be mixed):

  • {{#invoke:String2 |split |text |separator |index |true/false}}
  • {{#invoke:String2 |split |txt=text |sep=separator |idx=index |plain=true/false}}

Any double quotes (") in the separator parameter are stripped out, which allows spaces and wikitext like ["[ to be passed. Use {{!}} for the pipe character |.

If the optional plain parameter is set to false / no / 0 then separator is treated as a Lua pattern. The default is plain=true, i.e. normal text matching.

The index parameter is optional; it defaults to the first chunk of text.

  • {{Stringsplit |This is a piece of text to be split |" "}} → This
  • {{Stringsplit |This is a piece of text to be split |" "| 4}} → piece
  • {{Stringsplit |This is a piece of text to be split |x| 2}} → t to be split

Modules may return strings with | as separators like this: {{#invoke:carousel | main | name = WPDogs | switchsecs = 5 }} → סאטף אנגלי.jpg | Staffordshire Bull Terrier

Lua patterns can allow splitting at classes of characters such as punctuation:

  • {{Stringsplit |Apples, pears, oranges; Cats, dogs|"%p"| 2 |false}} → pears
  • {{Stringsplit |Apples, pears, oranges; Cats, dogs|"%p"| 4 |false}} → Cats

Or split on anything that isn't a letter (no is treated as false):

  • {{Stringsplit |Apples pears oranges; Cats dogs|"%A+"| 4 |no}} → Cats

Named parameters force the trimming of leading and trailing spaces in the parameters and are generally clearer when used:

  • {{Stringsplit | txt=Apples pears oranges; Cats dogs | sep="%A+" | idx=3 | plain=false }} → oranges