StringPosition

StringPosition["string","sub"]

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

StringPosition["string",patt]

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

StringPosition["string",patt,n]

includes only the first n occurrences of patt.

StringPosition["string",{patt1,patt2,}]

gives positions of all the patti.

StringPosition[{s1,s2,},p]

gives the list of results for each of the si.

StringPosition[patt]

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

Details and Options

Examples

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  (4)

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:

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:

Introduced in 1991
 (2.0)
 |
Updated in 2003
 (5.0)
2004
 (5.1)
2016
 (10.4)