StringExpression
s1~~s2~~… or StringExpression [s1,s2,…]
represents a sequence of strings and symbolic string objects si.
Details
- "str1"~~"str2"~~… yields an ordinary string obtained by concatenating the characters in the "stri".
- The following objects can appear in StringExpression :
-
"string" a literal string of characters_ any single character__ any substring of one or more characters___ any substring of zero or more charactersx_, x__, x___ substrings given the name xx:pattern pattern given the name xpattern.. pattern repeated one or more timespattern... pattern repeated zero or more times{patt1,patt2,…} or patt1|patt2|… a pattern matching at least one of the pattiAnyOrder [patt1, patt2, …] a pattern matching all of the patti in any orderFixedOrder [patt1, patt2, …] a pattern matching the concatenation of the pattiWhitespace a sequence of whitespace charactersNumberString the characters of a numbercharobj an object representing a character class (see below)StringExpression[…] an arbitrary string expression
- The following represent classes of characters:
-
{c1,c2,…} any of the "ci"HexadecimalCharacter hexadecimal digit 0-9, a-f, A-FDigitCharacter digit 0–9LetterCharacter letterWhitespaceCharacter space, newline, tab, or other whitespace characterWordCharacter letter or digit
- The following represent positions in strings:
-
StartOfString start of the whole stringEndOfString end of the whole stringStartOfLine start of a lineEndOfLine end of a lineWordBoundary boundary between word characters and others
- When constructs like __ or .. are present, there may be several different ways in which a given StringExpression can match a particular string.
- By default, the Wolfram Language will use the one that makes pattern elements that appear earlier in the StringExpression match the longest possible substrings.
- The following determine which match will be used if there are several possibilities:
- In matching ordinary expressions instead of strings, the shortest instead of the longest consistent match is used.
- StringExpression objects can be used in many string manipulation functions, including StringReplace , StringCases , StringSplit , and StringMatchQ .
- StringExpression has attributes Flat and OneIdentity .
Examples
open allclose allBasic Examples (2)
A string expression representing the string "ab" followed by any single character:
This makes a replacement for each occurrence of the string pattern "ab"~~__:
Give all pairs of identical characters in the string:
Scope (5)
A single blank (_) stands for any single character:
Double blank (__) stands for any sequence of one or more characters:
Triple blank (___) stands for any sequence of zero or more characters:
Use AnyOrder to match patterns in any order:
Assigning a matching AnyOrder to a variable preserves the order in the string:
Applications (1)
Find the primes with four identical digits:
By converting to strings, you can use StringMatchQ :
Properties & Relations (1)
StringExpression objects can be used in many string manipulation functions:
Tech Notes
Related Guides
History
Introduced in 2004 (5.1) | Updated in 2007 (6.0) ▪ 2008 (7.0) ▪ 2014 (10.0)
Text
Wolfram Research (2004), StringExpression, Wolfram Language function, https://reference.wolfram.com/language/ref/StringExpression.html (updated 2014).
CMS
Wolfram Language. 2004. "StringExpression." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/StringExpression.html.
APA
Wolfram Language. (2004). StringExpression. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StringExpression.html
BibTeX
@misc{reference.wolfram_2025_stringexpression, author="Wolfram Research", title="{StringExpression}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/StringExpression.html}", note=[Accessed: 27-April-2025 ]}
BibLaTeX
@online{reference.wolfram_2025_stringexpression, organization={Wolfram Research}, title={StringExpression}, year={2014}, url={https://reference.wolfram.com/language/ref/StringExpression.html}, note=[Accessed: 27-April-2025 ]}