yields True if any substring in "string" matches the string expression patt, and yields False otherwise.


yields True if any substring matches any of the patti.


gives a list of the results for each of the "stringi".


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

Details and Options

  • The string expression patt can contain any of the objects specified in the notes for StringExpression.
  • Setting the option IgnoreCase->True makes StringContainsQ treat lowercase and uppercase letters as equivalent.
  • StringContainsQ[patt][expr] is equivalent to StringContainsQ[expr,patt].
  • StringConstainsQ[BioSequence["type","seq"],patt] checks the string "seq" against patt. In this case, degenerate letters in patt are interpreted as wildcard patterns based on the type of biomolecular sequence. Use Verbatim["patt"] to match degenerate letters literally.
  • The documentation for BioSequence lists the degenerate letters supported by each type of biomolecular sequence.
  • If the biomolecular sequence operated upon by StringContainsQ is circular, wraparound matches are possible.


open allclose all

Basic Examples  (3)

Test whether a string contains a substring matching the pattern:

Give a list of strings as input:

Use the operator form of StringContainsQ:

Use the operator form to select strings:

Scope  (10)

Use string patterns:

Use a regular expression:

Mix regular expressions and string patterns:

Use pattern matching for dates:

Test for occurrences of either pattern:

StringContainsQ automatically threads over lists of strings:

Check whether a biomolecular sequence contains a particular substring:

Use a wildcard in the pattern compared against a biomolecular sequence:

The "N" is a degenerate letter only in biomolecular sequences:

Check for literal degenerate letters using Verbatim:

Circular sequences support wraparound checks:

Options  (2)

IgnoreCase  (2)

Use IgnoreCaseTrue to check for the presence of substrings regardless of case:

The operator representation of a case-independent check:

Applications  (1)

Pick all the lines that contain a substring that matches the pattern:

Line numbers with corresponding texts that contain "noon" or "day of":

Properties & Relations  (9)

StringContainsQ threads over lists of strings in the first argument:

StringContainsQ["string",{patt1,patt2,}] is equivalent to StringContainsQ["string",Alternatives[patt1,patt2,]]:

StringFreeQ["string",patt] is equivalent to !StringContainsQ["string",patt]:

Use StringMatchQ to check whether a whole string matches a pattern:

StringContainsQ checks whether a substring matches a pattern:

StringContainsQ generally returns True when StringMatchQ is True:

StringContainsQ["string",patt] is equivalent to StringMatchQ["string",___~~patt~~___]:

StringStartsQ["string",patt] is equivalent to StringContainsQ["string",StartOfString~~patt]:

StringEndsQ["string",patt] is equivalent to StringContainsQ["string",patt~~EndOfString]:

Get the starting and ending positions where a substring occurs by using StringPosition:

Use StringCases to extract substrings matching a given pattern:

Wolfram Research (2015), StringContainsQ, Wolfram Language function, (updated 2020).


Wolfram Research (2015), StringContainsQ, Wolfram Language function, (updated 2020).


Wolfram Language. 2015. "StringContainsQ." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020.


Wolfram Language. (2015). StringContainsQ. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_stringcontainsq, author="Wolfram Research", title="{StringContainsQ}", year="2020", howpublished="\url{}", note=[Accessed: 15-July-2024 ]}


@online{reference.wolfram_2024_stringcontainsq, organization={Wolfram Research}, title={StringContainsQ}, year={2020}, url={}, note=[Accessed: 15-July-2024 ]}