Shortest

Shortest[p]

是与和模式 p 一致的最短序列匹配的模式对象.

更多信息

  • Shortest 可用于普通表达式模式和字符模式.
  • 如果同一表达式中出现多个 Shortest 对象,则最先出现的对象将被赋予更高的优先级.
  • Shortest[p,pri] 被指定为优先级别为 pri 的最短序列. 首先尝试对具有较高优先级的 Shortest 对象进行最短序列的匹配.
  • 优先级可以是任意表达式,并且按标准的 Wolfram 语言 Sort 排序. Shortest[p] 指定可能的最高优先级.
  • 对于具有同等优先级别的 Shortest 对象,按照它们在表达式中出现的顺序进行尝试.
  • 如果没有明确给定 ShortestLongest,普通表达式模式通常被假定为 Shortest[p],而字符串模式被假定为 Longest[p]. »
  • Optional 一起使用时,Shortest 有特殊的意义. Shortest[patt:def] 先尝试使用值 def 进行匹配,然后才尝试模式 patt. 如果使用了 Optional,且没有给出明确的 LongestShortest,则实际上相当于封装在 Longest 中. »
  • 对于普通表达式,Shortest[p] 指定不只 p 的本身,而且 p 的所有部分均应匹配最短序列.
  • Shortest[p] 对应于非贪婪模式.
  • 如果模式中有其他约束条件,Shortest[p] 可能不对应于与 p 匹配的绝对最短的表达式.

范例

打开所有单元关闭所有单元

基本范例  (1)

Shortest 控制模糊匹配:

范围  (2)

Shortest 适用于字符串模式:

用优先级来控制模棱两可的选择:

应用  (1)

考虑以下参数长度可变的函数:

Shortest 将其表示为一个模式:

属性和关系  (4)

对于表达式,当模式有连续的序列时,第一个相当于被封装到 Shortest 中:

对于字符串模式,Shortest 提供所有长度最小的匹配项的 "non-greedy" 或 "lazy" 匹配项:

对于普通模式,大部分模式相当于被封装在 Shortest 中:

字符串模式则相当于被封装在 Longest 中:

默认情况下,patt:def 先尝试用 patt 进行匹配,然后使用 def

ShortestOptional 一起使用时,优先顺序反转:

可能存在的问题  (3)

如果还有其他限制条件,Shortest 可能不会匹配绝对最短的序列:

对于字符串模式,Shortest 将匹配所有最小子串,而不仅仅是绝对最短匹配:

字符表达式不支持优先级:

Wolfram Research (2007),Shortest,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Shortest.html.

文本

Wolfram Research (2007),Shortest,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Shortest.html.

CMS

Wolfram 语言. 2007. "Shortest." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Shortest.html.

APA

Wolfram 语言. (2007). Shortest. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Shortest.html 年

BibTeX

@misc{reference.wolfram_2024_shortest, author="Wolfram Research", title="{Shortest}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Shortest.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_shortest, organization={Wolfram Research}, title={Shortest}, year={2007}, url={https://reference.wolfram.com/language/ref/Shortest.html}, note=[Accessed: 22-November-2024 ]}