gives a list of the starting and ending character positions at which "sub" appears as a substring of "string".


gives all positions at which substrings matching the general string expression patt appear in "string".


includes only the first n occurrences of patt.


gives positions of all the patti.


gives the list of results for each of the si.


represents an operator form of StringPosition that can be applied to an expression.

Details and Options


open allclose all

Basic Examples  (3)

Find the starting and ending positions at which "XYZ" occurs in a string:

Find where any pairs of identical characters occur:

Use the operator form of StringPosition:

Scope  (7)

StringPosition gives substring positions in the form used by functions like StringTake:

Find the position of the first occurrence of "XYZ":

StringPosition by default includes overlaps:

Use Overlaps->False to exclude overlaps:

Find the position of a subsequence within a DNA sequence:

Use a wild card in the pattern found in a given bio sequence:

The "N" is a degenerate letter and is not a wild card except in bio sequences:

Additional wraparound matches may be found in circular bio sequences:

Match only literal degenerate letter occurrences using Verbatim:

Options  (4)

IgnoreCase  (2)

Treat "a" and "A" as the same:

Treat "a" and "A" as different:

Find successive identical characters independent of case:

Overlaps  (2)

StringPosition by default includes overlaps:

By default, StringPosition only includes one substring starting at any given position:

With Overlaps->All, it includes all substrings:

Applications  (2)

Find positions of pairs of identical letters in a concatenation sequence:

Find an analogous curve for triples:

Find the positions of the word "president" in the US Constitution:

Properties & Relations  (2)

Use StringTake to extract substrings found by StringPosition:

StringCases by default excludes overlaps:

Use StringReplacePart to replace at positions found by StringPosition:

Possible Issues  (1)

Lists of string patterns in StringPosition are sometimes not the same as pattern alternatives:

Wolfram Research (1991), StringPosition, Wolfram Language function, (updated 2020).


Wolfram Research (1991), StringPosition, Wolfram Language function, (updated 2020).


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


@online{reference.wolfram_2021_stringposition, organization={Wolfram Research}, title={StringPosition}, year={2020}, url={}, note=[Accessed: 18-October-2021 ]}


Wolfram Language. 1991. "StringPosition." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020.


Wolfram Language. (1991). StringPosition. Wolfram Language & System Documentation Center. Retrieved from