splits "string" into a list of substrings separated by whitespace.


splits into substrings separated by delimiters matching the string expression patt.


splits at any of the pi.


inserts val at the position of each delimiter.


inserts vi at the position of each delimiter pi.


splits into at most n substrings.


gives the list of results for each of the si.

Details and Options

  • StringSplit[s] does not return the whitespace characters that delimit the substrings it returns.
  • Whitespace includes any number of spaces, tabs, and newlines.
  • The string expression patt can contain any of the objects specified in the notes for StringExpression.
  • StringSplit[s] is equivalent to StringSplit[s,Whitespace].
  • If s contains two adjacent delimiters, StringSplit considers there to be a zerolength substring "" between them.
  • StringSplit[s,patt] by default gives the list of substrings of s that occur between delimiters defined by patt; it does not include the delimiters themselves.
  • StringSplit[s,patt->val] includes val at the position of each delimiter.
  • StringSplit[s,patt:>val] evaluates val only when the pattern is found.
  • StringSplit["string",{p1->v1,,pa,}] includes v1 at the position of delimiters matching p1, but omits delimiters matching pa.
  • By default, StringSplit[s,patt] drops zerolength substrings associated with delimiters that appear at the beginning or end of s.
  • StringSplit[s,patt,All] returns all substrings, including zerolength ones at the beginning or end.
  • Setting the option IgnoreCase->True makes StringSplit treat lowercase and uppercase letters as equivalent.
  • StringSplit["string",RegularExpression["regex"]] splits at delimiters matching the specified regular expression.
  • StringSplit[BioSequence["type","seq"],patt,] will split the string "seq" by patt yielding a list of BioSequence results. In this case, degenerate letters in patt are interpreted as wildcard patterns based on the type of bio sequence. Use Verbatim["patt"] to match degenerate letters literally.


open allclose all

Basic Examples  (2)

Pick out substrings delimited by whitespace:

Show the substrings with quotes:

Split a string at every --:

Scope  (11)

Split at every run of spaces:

Use string patterns:

Regular expressions:

Mixed regular expressions and string patterns:

Split into substrings separated by either delimiter:

Insert a value at the position of a delimiter:

Include the delimiters in the output:

StringSplit automatically threads over lists of strings:

Split a DNA sequence by a particular sequence:

StringSplit respects the degenerate letters of the provided BioSequence:

Use Verbatim to restrict degenerate letter matching to exact matches:

Generalizations & Extensions  (1)

All substrings, including zerolength ones at the beginning or end:

Options  (1)

IgnoreCase  (1)

Split a string at every "c", including uppercase letters:

Applications  (4)

Make a nested array by applying StringSplit twice:

A base random DNA string:

Sequences with adenine symmetrically placed:

Text analysis with some right and left context:

Use StringSplit to find all occurrences of the word "power":

Compute part of the left and right contexts in which each word occurs:

List extensions of files in a directory and its subdirectories:

Properties & Relations  (4)

Splitting at whitespace is equivalent to cases of non-whitespace sequences:

StringSplit with a rule is equivalent to StringReplace:

A null delimiter splits at every character:

Using StringSplit on a comma-separated values string:

In many cases Import and ImportString provide direct functionality:

Possible Issues  (1)

StringSplit by default splits only at whitespace:

This splits into words:

Another way to split into words:

Wolfram Research (2004), StringSplit, Wolfram Language function, (updated 2020).


Wolfram Research (2004), StringSplit, Wolfram Language function, (updated 2020).


@misc{reference.wolfram_2020_stringsplit, author="Wolfram Research", title="{StringSplit}", year="2020", howpublished="\url{}", note=[Accessed: 18-January-2021 ]}


@online{reference.wolfram_2020_stringsplit, organization={Wolfram Research}, title={StringSplit}, year={2020}, url={}, note=[Accessed: 18-January-2021 ]}


Wolfram Language. 2004. "StringSplit." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020.


Wolfram Language. (2004). StringSplit. Wolfram Language & System Documentation Center. Retrieved from