帮助:解析函数/replace
#replace是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
#replace
文本替换。出自扩展 ParserFunctions。
- 官方文档:英文文档
语法
{{#replace: 字符串 | 搜索项 | 替换项 | 替换次数 }}
- 字符串:要进行替换操作的原始文本,区分大小写
- 搜索项(可选):要查找的文本,默认为空格
- 替换项(可选):替换后的文本,默认为空字符串(即删除匹配项)
- 替换次数(可选):最大替换次数,默认为无限制
搜索项和替换项的最大长度受系统配置限制,扩展默认值是1000
参数首尾的空格会被移除,参数中的扩展标签也会被移除。如需在参数首尾使用空格,需要配合<nowiki/>
标签使用,如<nowiki/> balabala
,<nowiki/> <nowiki/>
示例
{{#replace:Hello world|world|Wiki}}
→ Hello Wiki{{#replace:Banana|a|o}}
→ Bonono{{#replace:No_spaces_here|_|<nowiki> </nowiki>}}
→ Nospaceshere{{#replace:No_spaces_here|_|<nowiki>-</nowiki>}}
→ Nospaceshere{{#replace:No_spaces_here|_|<nowiki/> <nowiki/>}}
→ No spaces here(由于nowiki和其他扩展标签会被移除,只能使用自闭合的nowiki标签防止空格被移除){{#replace:Remove all spaces}}
→ Removeallspaces
底层代码
- 代码逻辑:
- 参数处理:移除解析标记(Strip marker);空搜索项自动转换为单个空格
- 检测输入参数长度在限制内,否则报错;计算搜索项和替换项长度,计算长度限制内允许的最大替换次数
- 使用正则表达式实施替换(
preg_replace
) - 检测结果保证长度在限制内
- 返回结果
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。