帮助:解析函数/arraysearch
Arraysearch是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
arraysearch
搜索数组。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。。
在数组中查找指定值首次出现的位置,并返回其索引或自定义值。
支持从指定索引开始搜索,以及正则表达式匹配。索引从0开始计数。
语法
{{#arraysearch: 数组名 | 搜索值 | 开始位置 | 成功值 | 失败值 }}
- 数组名:已定义的数组名称。
- 搜索值:要查找的元素内容。
- 普通字符串会按“完全匹配”查找(前后空白忽略)。
- 若以
/pattern/
格式书写,则按正则表达式匹配。
- 开始位置:可选,搜索起点的索引(非负整数,默认 0)。超出范围会直接失败。
- 成功值:可选,找到时返回的值。省略时返回匹配元素的索引(数字)。
- 失败值:可选,未找到时返回的值。省略时返回空字符串。
示例
定义数组 b
:
{{#arraydefine:b|blue,white,red,white}}
- 基础用法:
{{#arraysearch:b|white}}
→ 1 - 开始位置:
{{#arraysearch:b|white|2}}
→ 3 - 正则匹配:
{{#arraysearch:b|/r.*/}}
→ 2 (匹配 red) - 未找到时:
{{#arraysearch:b|blu}}
→ - 自定义成功/失败值:
{{#arraysearch:b|white|0|yes|no}}
→ yes{{#arraysearch:b|yellow|0|yes|no}}
→ no
底层代码
- 代码逻辑:
- 函数接受数组名、搜索值、开始位置、成功值和失败值等参数。
- 通过循环遍历数组,查找匹配搜索值的元素,支持正则表达式匹配。
- 当找到匹配的元素时,根据参数返回成功值或者元素的索引;未找到时返回失败值或者默认值(空字符串)。
- 函数通过对数组和参数进行处理,实现了灵活的搜索功能。
- (其中的 $egArraysCompatibilityMode 始终为 False)
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。