# wildmatch - 脚本和图表函数

wildmatch 函数用于将第一个参数与所有以下参数进行比较，并返回匹配表达式的数量。它允许在比较字符串中使用通配符（ \* 和 ?）。 \* 匹配任何字符序列。? 匹配任何单个字符。该比较不区分大小写，对日语平假名和片假名字符系统不会进行区分。

语法：

wildmatch( str, expr1 [ , expr2,...exprN ])

如果您想要使用比较而不使用通配符，可以使用 match 或 mixmatch 函数。

本主题中的一些示例使用内联加载。[使用内联加载来加载数据](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## 示例：使用 wildmatch 的加载脚本

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### 示例：加载脚本

加载脚本

您可使用 wildmatch 以加载数据的子集。例如，您可为函数中的表达式返回数值。然后您可根据数值限制加载的数据。如果没有匹配，Wildmatch 返回 0。在该示例中不匹配的所有表达式将因此返回 0 并且通过 WHERE 语句从数据加载排除。

在数据加载编辑器中创建一个新选项卡，然后将以下数据作为内联加载加载。在 Qlik Sense 中创建下面的表格以查看结果。

```
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
 
/*
Create new table called Transaction_Buckets
Create new fields called Customer, and Color code - Black, Blue, blue, red
Load Transactions table.
Wildmatch returns 1 for 'Black', 'Blue', and 'blue', and 2 for 'Red'. 
Only values that returned numeric value greater than 0 
are loaded by WHERE statement into Transactions_Buckets table.
*/
 
Transaction_Buckets:
Load
   customer_id,
   customer_id as [Customer],
   color_code as [Color Code Black, Blue, blue, Red]
Resident Transactions
Where wildmatch(color_code,'Bl*','R??') > 0;
```

结果

Qlik SenseQlik Sense 表显示了在加载脚本中使用 wildmatchwildmatch 函数的输出

| Color Code Black, Blue, blue, Red | Customer |
| --- | --- |
| Black | 203521 |
| Black | 3036491 |
| Blue | 2038593 |
| 蓝色 | 5646471 |
| 红色 | 049681 |
| 红色 | 2038593 |

## 示例：使用 wildmatch 的图表表达式

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### 示例 - 图表表达式

图表表达式 1

在数据加载编辑器中创建一个新选项卡，然后将以下数据作为内联加载加载。加载数据后，在 Qlik Sense 表格中创建下面的图表表达式示例。

```
MyTable:
Load * inline [Cities, Count
Toronto, 123
Toronto, 234
Toronto, 231
Boston, 32
Boston, 23
Boston, 1341
Beijing, 234
Beijing, 45
Beijing, 235
Stockholm, 938
Stockholm, 39
Stockholm, 189
zurich, 2342
zurich, 9033
zurich, 0039];
```

下面表格中的第一个表达式为 Stockholm 返回 0，因为 'Stockholm' 未包括在 wildmatch 函数中的表达式列表内。对于 'Boston'，它也返回 0，因为 ? 只匹配单个字符。

Qlik SenseQlik Sense 表以图表表达式显示了 wildmatchwildmatch 函数的示例

| Cities | wildmatch( Cities,'Tor\*','?ton','Beijing','\*urich') | wildmatch( Cities,'Tor\*','???ton','Beijing','Stockholm','\*urich') |
| --- | --- | --- |
| Beijing | 3 | 3 |
| Boston | 0 | 2 |
| Stockholm | 0 | 4 |
| Toronto | 1 | 1 |
| zurich | 4 | 5 |

图表表达式 2

您可使用 wildmatch 来为表达式执行自定义排序。

默认情况下，列按数字或字母排序，具体取决于数据。

Qlik SenseQlik Sense 表格示出默认排序顺序的示例

| Cities |
| --- |
| Beijing |
| Boston |
| Stockholm |
| Toronto |
| zurich |

要更改顺序，执行以下操作：

1. 在属性面板中为您的图表打开排序部分。

2. 为您要进行自定义排序的列关闭自动排序。

3. 取消选择按数字排序以及按字母排序。

4. 选择排序表达式，然后输入和以下相似的表达式：

   `=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')`

   Cities 列上的排序顺序更改。

Qlik SenseQlik Sense 表格示出使用 wildmatchwildmatch 函数更改排序顺序的示例。

| Cities |
| --- |
| Toronto |
| Boston |
| Beijing |
| Stockholm |
| zurich |

您还可查看返回的数值。

Qlik SenseQlik Sense 表示出从 wildmatchwildmatch 函数返回的数值的示例

| Cities | Cities & ' - ' & wildmatch ( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich') |
| --- | --- |
| Toronto | Toronto - 1 |
| Boston | Boston - 2 |
| Beijing | Beijing - 3 |
| Stockholm | Stockholm - 4 |
| zurich | zurich - 5 |

## 了解详情

* [match - 脚本和图表函数](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)
* [mixmatch - 脚本和图表函数](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)