帮助:解析函数/pos
pos是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
pos
字符串搜索。出自扩展 ParserFunctions 的String functions大规模使用时性能低下,推荐使用Lua模块。请参考扩展置顶警告和MediaWiki代码库 r51497中的暴论“parsers in the ugliest, most inefficient programming language known to man: MediaWiki wikitext with ParserFunctions.”、“WARNING: enabling this may have an adverse impact on the sanity of your users.”。
返回指定字符串首次出现的位置,区分大小写。没有找到结果时返回空字符串。搜索时,无视字符串中的nowiki标签和其他解析器扩展标签。
语法
{{#pos: 字符串 | 搜索目标 | 偏移量 }}
- 字符串:被搜索的内容,其中的nowiki标签和解析器扩展标签会被无视,即先移除后搜索。
- 搜索目标:要在字符串中搜索的目标,默认空格
- 偏移量(可选):指定搜索的起始位置,用于跳过若干字符
示例
{{#pos: Wins Come All Day | Come }}
→ 5{{#pos: Wins Come All Day }}
→ 4 (查询目标默认为空格){{#pos: endless wins | e }}
→ 0{{#pos: endless wins | e | 2 }}
→ 4{{#pos: <a>赢</a>而不麻 | 麻 }}
→ 2 (扩展标签及其内容会被忽略){{#pos: 陈睿吃花椒 | 花椒 }}
→ 3
底层代码
- 代码逻辑:
- 移除输入字符串和查询目标中的解析标记(Strip marker)
- 如果输入参数长度超过限制,就报错
- 查询目标默认值时空格
- 在字符串中寻找查询目标,返回其位置。找不到时返回空字符串
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。