Wolfram Computation Meets Knowledge

Wolfram 语言:
快速编程入门

显示附加备注:
全部选择 
开始使用

模式 视频

Java 程序员备注:

Wolfram 语言的模式语言让您描述任意符号结构的模式,允许强大的 regex-like 处理泛用于任意表达式和任何数据格式.

Python 程序员备注:

Wolfram 语言的模式语言允许你对任意符号结构的模式进行描述,能够将强大的 regex-like 操作泛用与任意表达式和任意格式的数据.

模式代表表达式的类型. 基本的模式结构 _(读作 “blank”)代表任意表达式.

查找列表中匹配模式 f[_] 的表达式:

In[1]:=1
Cases[{f[1], g[2], f[5], g[3]}, f[_]]
Out[1]=1

x_x:_ 的缩写)代表一个模式,其值将被命名为 x

In[2]:=2
Replace[f[100], f[x_] -> x + 5]
Out[2]=2

/. 表示 “全部替代”:

In[3]:=3
{f[1], g[2], f[5], g[3]} /. f[x_] -> x + 5
Out[3]=3

Java 程序员备注:

在此显示的该类结构的元程序是 Wolfram 语言符号结构的独有特点.

Python 程序员备注:

在此显示的该类结构的元程序,将代码和数据等同对待,是 Wolfram 语言符号结构的独有特点.


__(“两个 blank”) 代表任意表达式序列:

In[1]:=1
Cases[{f[1, 2], f[1], g[3]}, f[__]]
Out[1]=1

a | b | c 代表 abc

In[1]:=1
Cases[{f[1], g[2], f[2], f[5], g[3]}, f[1 | 5]]
Out[1]=1

Java 程序员备注:

| 的用法与 Java 的 regex 注释类似, 但 | 在 Java 中也可表示按位 OR.

Python 程序员备注:

| 在 Wolfram 语言模式中的使用与其在 Python 常用表达式中的用法相近. 但是,Wolfram 语言中,| 不仅用于字符串,还可用于任意类型的符号模式匹配.

它也适用于标头:

In[2]:=2
Cases[{f[1], g[2], f[2], f[5], g[3]}, (f | g)[2]]
Out[2]=2

_h 代表任何有标头 h 的表达式:

In[1]:=1
Cases[{1, 2.5, 3.5, 4}, _Real]
Out[1]=1

:> 是一个延迟规则;类似于规则中的 :=

快速参考:含有模式的操作


以下模式中哪项与表达式 g[1, 2, 3]匹配?


以下哪项从列表 {f[1], g[2], f[5], g[3]} 中选出与 g[_] 所匹配的全部元素?


以下哪项为表达式 {f[1], f[5], f[x]} /. f[x_] x + 4 的结果?

© 2019 Wolfram. All rights reserved.