Shortest
✖
Shortest
Details

- Shortest works for both ordinary expression patterns and string patterns.
- If several Shortest objects occur in the same expression, those that appear first are given higher priority to match shortest sequences.
- Shortest[p,pri] is given priority pri to be the shortest sequence. Matches for shortest sequences are tried first for Shortest objects with higher priorities.
- Priorities can be any expression, and are ordered in standard Wolfram Language Sort order. Shortest[p] specifies the highest possible priority.
- Shortest objects with equal priorities are tried in the order they appear in the expression.
- If no explicit Shortest or Longest is given, ordinary expression patterns are normally effectively assumed to be Shortest[p], while string patterns are assumed to be Longest[p]. »
- Shortest has special meaning when combined with Optional. Shortest[patt:def] first attempts to match using the value def and only then tries the pattern patt. If Optional is used with no explicit Longest or Shortest, it is effectively wrapped in Longest. »
- For ordinary expressions, Shortest[p] specifies that not just p itself, but also all parts of p should match the shortest sequences.
- Shortest[p] corresponds to a "non-greedy pattern".
- Shortest[p] may not correspond to the absolutely shortest expression matching p if there are additional constraints elsewhere in the pattern.
Examples
open allclose allBasic Examples (1)Summary of the most common use cases
Control ambiguous matches by using Shortest:

https://wolfram.com/xid/0wf8p8s-b2lty


https://wolfram.com/xid/0wf8p8s-icic1b

Scope (2)Survey of the scope of standard use cases
Shortest works with string patterns:

https://wolfram.com/xid/0wf8p8s-jgvkq4


https://wolfram.com/xid/0wf8p8s-kh0al7

Use priorities to affect ambiguous choices:

https://wolfram.com/xid/0wf8p8s-br5bds


https://wolfram.com/xid/0wf8p8s-t0nee

Applications (1)Sample problems that can be solved with this function
Consider the following variable-length argument function:

https://wolfram.com/xid/0wf8p8s-mhkrm0

https://wolfram.com/xid/0wf8p8s-dwqh5g

https://wolfram.com/xid/0wf8p8s-n38q1

Use Shortest to express it as one pattern:

https://wolfram.com/xid/0wf8p8s-ch0wme

https://wolfram.com/xid/0wf8p8s-s4uuh

Properties & Relations (4)Properties of the function, and connections to other functions
For expressions, when a pattern has consecutive sequences, the first one is effectively wrapped in Shortest:

https://wolfram.com/xid/0wf8p8s-r3uqlm


https://wolfram.com/xid/0wf8p8s-x2p221

For string patterns, Shortest provides "non-greedy" or "lazy" matches of all minimum-length matches:

https://wolfram.com/xid/0wf8p8s-qy1ll4

For ordinary patterns, most patterns are effectively wrapped in Shortest:

https://wolfram.com/xid/0wf8p8s-t3nmk2

String patterns are effectively wrapped in Longest:

https://wolfram.com/xid/0wf8p8s-kiw4he

By default, patt:def first attempts the pattern using patt and only then def:

https://wolfram.com/xid/0wf8p8s-gxdfrp

When Shortest is combined with Optional, the order is reversed:

https://wolfram.com/xid/0wf8p8s-6cl2sw

Possible Issues (3)Common pitfalls and unexpected behavior
When there are additional constraints, Shortest may not match the absolute shortest sequence:

https://wolfram.com/xid/0wf8p8s-hfeevi


https://wolfram.com/xid/0wf8p8s-xt0vcn

For string patterns, Shortest will match all minimal substrings, not just the absolute shortest match:

https://wolfram.com/xid/0wf8p8s-il1ikv

Priorities are not supported in string expressions:

https://wolfram.com/xid/0wf8p8s-sesren


Wolfram Research (2007), Shortest, Wolfram Language function, https://reference.wolfram.com/language/ref/Shortest.html.
Text
Wolfram Research (2007), Shortest, Wolfram Language function, https://reference.wolfram.com/language/ref/Shortest.html.
Wolfram Research (2007), Shortest, Wolfram Language function, https://reference.wolfram.com/language/ref/Shortest.html.
CMS
Wolfram Language. 2007. "Shortest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Shortest.html.
Wolfram Language. 2007. "Shortest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Shortest.html.
APA
Wolfram Language. (2007). Shortest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Shortest.html
Wolfram Language. (2007). Shortest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Shortest.html
BibTeX
@misc{reference.wolfram_2025_shortest, author="Wolfram Research", title="{Shortest}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Shortest.html}", note=[Accessed: 22-April-2025
]}
BibLaTeX
@online{reference.wolfram_2025_shortest, organization={Wolfram Research}, title={Shortest}, year={2007}, url={https://reference.wolfram.com/language/ref/Shortest.html}, note=[Accessed: 22-April-2025
]}