Shortest

Shortest[p]

is a pattern object that matches the shortest sequence consistent with the pattern p.

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].
• 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 all

Basic Examples(1)

Control ambiguous matches by using Shortest:

 In[1]:=
 Out[1]=
 In[2]:=
 Out[2]=