匿名
未登录
创建账号
登录
istudylinux
搜索
查看“解析器函数”的源代码
来自istudylinux
命名空间
页面
讨论
更多
更多
页面操作
阅读
查看源代码
历史
←
解析器函数
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== #expr == 这个函数计算数学表达式并返回计算值或者布尔结果。<ref name="pF">[https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/zh 帮助:扩展:解析器函数]</ref> * 1(true) * 0(false) {| class="wikitable" style="overflow:auto;" |+ #expr测试用例 |- | colspan='3' | <nowiki>{{#expr: 表达式}}</nowiki><br>完整的数学计算请参考[https://meta.wikimedia.org/wiki/Special:MyLanguage/Help:Calculation MediaWiki计算] |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#expr: 1 and -1}},{{#expr: 1 and 0}},{{#expr: 2 and 3}}</nowiki></code> || {{#expr: 1 and -1}},{{#expr: 1 and 0}},{{#expr: 2 and 1}} || 逻辑与,非0以外的数都是true(1),false(0) |- | <code><nowiki>{{#expr: 1 or -1}},{{#expr: 1 or 0}},{{#expr: 2 or 3}}</nowiki></code> || {{#expr: 1 or -1}},{{#expr: 1 or 0}},{{#expr: 2 or 3}} || 逻辑或,非0以外的数都是true(1),false(0) |- | <code><nowiki>{{#expr: 1>2}},{{#expr: 1<=2}}</nowiki></code> || {{#expr: 1>2}},{{#expr: 1<=2}} || 逻辑判断大小,非0以外的数都是true(1),false(0) |- | <code><nowiki>{{#expr: (1+1*8/2) mod 3}}</nowiki></code> || {{#expr: (1+1*8/2) mod 3}} || 混合运算 |- | <code><nowiki>{{#expr: pi}},{{#expr: 1e3}}</nowiki></code> || {{#expr: pi}},{{#expr: 1e3}} || π,科学计数 |- | <code><nowiki>{{#expr: sin30}},{{#expr: sin(30*pi/180)}}</nowiki></code> || {{#expr: sin30}},{{#expr: sin(30*pi/180)}} || 正弦 |- | <code><nowiki>{{#expr: 1/3 round 5}},{{#expr: 1/6 round 5}}</nowiki></code> || {{#expr: 1/3 round 5}},{{#expr: 1/6 round 5}} || round取整,最后的小数大于5会区6,否则使用原数 |- | <code><nowiki>{{#expr: 1234.5678 round -2}},{{#expr: 1234.5678 round 2}}</nowiki></code> || {{#expr: 1234.5678 round -2}},{{#expr: 1234.5678 round 2}} || -2往小数点左边取2位,正数往小数点右边取2位 |- | <code><nowiki>{{#expr: {{NUMBEROFUSERS}}}},{{#expr: {{NUMBEROFUSERS}}+5}}</nowiki></code> || {{#expr: {{NUMBEROFUSERS}}}},{{#expr: {{NUMBEROFUSERS}}+5}} || 配合魔术字 |- | <pre>{{#expr: 45,000 + 100}} {{#expr: 2 =}}</pre> || {{#expr: 45,000 + 100}}<br>{{#expr: 2 =}} || 错误使用会出现提示信息 |} == #ifexpr == 此函数会判断数学表达式并根据其布尔值结果返回对应的字符串。<ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #ifexpr测试用例 |- | colspan='3' | <nowiki>{{#ifexpr: expression | value if true | value if false }}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <pre>{{#ifexpr: {{#expr: 2 > 1}} | yes | no }} {{#ifexpr: 2 > 1 | yes | no }} </pre> || {{#ifexpr: {{#expr: 2 > 1}} | yes |no}}<br>{{#ifexpr: 2 > 1 | yes | no }} || |- | <pre>{{#ifexpr: {{#expr: 2+1*8 }} | yes | no }} {{#ifexpr: 2+1*8 | yes | no }} </pre> || {{#ifexpr: {{#expr: 2+1*8 }} | yes |no}}<br>{{#ifexpr: 2+1*8 | yes | no }} || |- | <pre>{{#ifexpr: | yes | no }} {{#ifexpr: 0 | yes | no }} {{#ifexpr: 1 | yes | no }} </pre> || {{#ifexpr: | yes | no }}<br>{{#ifexpr: 0 | yes | no }}<br>{{#ifexpr: 1 | yes | no }} || |} == #if == 这个函数判断一个字符串是否为空。只包含空格的字符串被视为空字符串。<ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #if测试用例 |- | colspan='3' | <nowiki>{{#if: 测试字符串 | 试字符串非空时的取值 | 测试字符串为空或仅包含空白字符时的取值 }}</nowiki><br/><nowiki>{{#if: 参数1 | 参数2 | 参数3 }}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#if:| yes |no}}</nowiki></code> || {{#if:|yes|no}} || 空值 |- | <code><nowiki>{{#if: |yes |no}}</nowiki></code> || {{#if: | yes |no}} || 参数输入的是空格 |- | <pre>{{#if: |yes|no}}</pre> || {{#if: |yes |no}} || 参数输入的是空格,回车等 |- | <code><nowiki>{{#if:isl| yes |no}}</nowiki></code> || {{#if:isl|yes|no}} || |- | <code><nowiki>{{#if: 1==2 | yes | no }}</nowiki></code> || {{#if: 1==2 | yes | no }} || |- | <code><nowiki>{{#if: 0 |yes | no }}</nowiki></code> || {{#if: 0 |yes | no }} || 参数1都是当字符串处理 |- | <code><nowiki>{{#if: isl | yes }}</nowiki></code> || {{#if: isl | yes }} || 最后一个参数可以忽略 |- | <code><nowiki>{{#if: | | no }}</nowiki></code> || {{#if: | |no }} || |- | <code><nowiki>{{#if:{{#if:isl|yes|no}}|里面返回字符串|里面返回空}}</nowiki></code> || {{#if:{{#if:isl|yes|no}}|里面返回字符串|里面返回空}} || 嵌套使用 |- | <code><nowiki>{{#if:{{#if:isl| |no}}|里面返回字符串|里面返回空}}</nowiki></code> || {{#if:{{#if:isl||no}}|里面返回字符串|里面返回空}} || 嵌套使用 |} == #ifeq == 这个函数判断两个输入字符串是否相同,并根据结果输出两个字符串的其中一个。 如果需要更多的比较和输出字符串,请考虑使用[[##switch|#switch]]。<ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #ifeq测试用例 |- | colspan='3' | <nowiki>{{#ifeq: 字符串1 | 字符串2 | 两个字符串相等 | 不相等 }}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#ifeq: 01 | 1 | 相等 | 不相等 }}</nowiki></code> || {{#ifeq:01|1|相等|不相等}} || 如果两个参数都是数字,进行数字比较 |- | <code><nowiki>{{#ifeq: 0 | -0 | 相等 | 不相等 }}</nowiki></code> || {{#ifeq:0|-0|相等|不相等}} || 如果两个参数都是数字,进行数字比较 |- | <code><nowiki>{{#ifeq: 1e3 | 1000 | 相等 | 不相等 }}</nowiki></code> || {{#ifeq:1e3|1000|相等|不相等}} || |- | <code><nowiki>{{#ifeq: {{#expr:10^3}}| 1000 | 相等 | 不相等 }}</nowiki></code> || {{#ifeq:{{#expr:10^3}}|1000|相等|不相等}} || |- | <code><nowiki>{{#ifeq: "01" | "1" | 相等 | 不相等 }}</nowiki></code> || {{#ifeq:"01"|"1"|相等|不相等}} || |- | <code><nowiki>{{#ifeq: 真的 | 假的 | 相等 | 不相等 }}</nowiki></code> || {{#ifeq: 真的 | 假的 | 相等 | 不相等 }}</code> || |- | <code><nowiki>{{#ifeq: Abc | abc |相等| 不相等 }}</nowiki></code> || {{#ifeq: Abc | abc |相等| 不相等 }} || |- | <code><nowiki>{{#ifeq: 10^3 | 1000 | 相等 | 不相等 }}</nowiki></code> || {{#ifeq: 10^3 | 1000 | 相等 | 不相等 }} || |- | <code><nowiki>{{#ifeq: </nowiki><nowiki><nowiki>foo</nowiki></nowiki> <nowiki>| <nowiki>foo</nowiki></nowiki> <nowiki>| 相等 | 不相等}}</nowiki></code> || {{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki>| 相等 | 不相等 }} || 每个标签在解析的时候回自动添加相关的独立标记 |- | colspan='3' | 其他的比较如{{FULLPAGENAME}},模板 |} == #iferror == 这个函数接收一个输入字符串,返回两个结果中的一个。如果输入字符串包含一个由其他解析器函数(比如[[##expr|#expr]]、[[##time|#time]]和[[##rel2abs|#rel2abs]])、模板错误(比如模板循环和模板递归)或其他解析器“软错误”生成的<code>class="error"</code>的HTML对象,那么视为真。<ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #iferror测试用例 |- | colspan='3' | <nowiki>{{#iferror: test string | value if error | value if correct }}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <pre>{{#iferror: {{#expr: 1 + 2 }} | 用法错误 | 用法正确 }} {{#iferror: {{#expr: 1 + 2 }} | 用法错误 }} </pre> || {{#iferror: {{#expr: 1 + 2 }} | 用法错误 | 用法正确 }}<br>{{#iferror: {{#expr: 1 + 2 }} | 用法错误 }} || |- | <code><nowiki>{{#iferror: {{#expr: 2 =}} | 用法错误 | 用法正确 }}</nowiki></code> || {{#iferror: {{#expr: 2 =}} | 用法错误 | 用法正确 }} || |- | <code><nowiki>{{#iferror: <strong class="error">a</strong> | 标签带error | 标签不带error }}</nowiki></code> || {{#iferror: <strong class="error">a</strong> | 标签带error | 标签不带error }} || |- | <code><nowiki> {{#iferror: {{#expr: 2 =}} | 解析结果带error | 解析结果带不带error }}</nowiki></code> || {{#iferror: {{#expr: 2 =}} | 解析结果带error | 解析结果带不带error }} || |} == #rel2abs == 这个函数将文件的相对路径转换为绝对路径。<ref name="pF" /> * <code>.</code>本级目录 * <code>../</code>上级目录 * <code>/标题</code>下级目录 {| class="wikitable" style="overflow:auto;" |+ #rel2abs测试用例 |- | colspan='3' | <nowiki>{{#rel2abs: path }}</nowiki><br><nowiki>{{#rel2abs: path | base path }}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <pre>{{#rel2abs: {{PAGENAME}} |模板:a/b/c }} {{#rel2abs: {{PAGENAME}}}}</pre> || {{#rel2abs: {{PAGENAME}} |模板:a/b/c }}<br>{{#rel2abs: {{PAGENAME}}}} || |- | <pre>{{#rel2abs: ./{{PAGENAME}} |模板:a/b/c }} {{#rel2abs: /{{PAGENAME}} |模板:a/b/c }}</pre> || {{#rel2abs: ./{{PAGENAME}} |模板:a/b/c }}<br>{{#rel2abs: /{{PAGENAME}} |模板:a/b/c }} || ./和/是一样的 |- | <pre>{{#rel2abs: ../{{PAGENAME}} |模板:a/b/c }} {{#rel2abs: ../../{{PAGENAME}} |模板:a/b/c }} {{#rel2abs: ../../../{{PAGENAME}} |模板:a/b/c }} </pre> || {{#rel2abs: ../{{PAGENAME}} |模板:a/b/c }}<br>{{#rel2abs: ../../{{PAGENAME}} |模板:a/b/c }}<br>{{#rel2abs: ../../../{{PAGENAME}} |模板:a/b/c }} || |- | <pre>{{#rel2abs: ../../ |模板:a/b/c }} {{#rel2abs: .././ |模板:a/b/c }} {{#rel2abs: .././../ |模板:a/b/c }} </pre> || {{#rel2abs: ../../ |模板:a/b/c }}<br>{{#rel2abs: .././ |模板:a/b/c }}<br>{{#rel2abs: .././../ |模板:a/b/c }} || |- | <pre>{{#rel2abs: ../../ |模板:a/b/c }} {{#rel2abs: ../../../ |模板:a/b/c }} {{#rel2abs: ../../../../ |模板:a/b/c }} </pre> || {{#rel2abs: ../../ |模板:a/b/c }}<br>{{#rel2abs: ../../../ |模板:a/b/c }}<br>{{#rel2abs: ../../../../ |模板:a/b/c }} || |} == #ifexist == 这个函数将一组字符串作为输入,并翻译成页面标题,然后根据在本地wiki上是否存在该页面而返回对应的值。<ref name="pF" />尽量少用。 '''''被视为“高开销(expensive)解析器函数”,每个页面调用这类函数的次数(包括包含于嵌入式模板的函数)存在一个限制。''''' {| class="wikitable" style="overflow:auto;" |+ #ifexist测试用例 |- | colspan='3' | <nowiki>{{#ifexist: 页面名称 | 页面存在结果 | 页面不存在结果 }}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#ifexist: 模板:我的模板 | 页面存在 | 页面不存在 }}</nowiki></code> || {{#ifexist: 模板:我的模板 | 页面存在 | 页面不存在 }} || |- | <code><nowiki>{{#ifexist: File:MediaWiki.png | 文件存在 | 文件不存在 }}</nowiki></code> || {{#ifexist:File:MediaWiki.png | 文件存在 | 文件不存在 }} || |- | <code><nowiki>{{#ifexist: Mediawiki:common.css | 页面存在 | 页面存在 }}</nowiki></code> || {{#ifexist: Mediawiki:common.css | 文件存在 | 文件不存在 }} || 只要是标题都可以 |} == #switch == 该函数将一个输入值同若干个测试用例(test cases)做比较,如果找到匹配,返回有关联的字符串。<ref name="pF"/> 语法: <pre>{{#switch: comparison string | case = result | case = result | ... | case = result | default result }} </pre> === 默认值 === {| class="wikitable" style="overflow:auto;" |+ #switch默认值 |- ! 示例 !! 输出结果 !! 备注 |- | <pre>{{#switch: 1 | 1 = 为1 | 2 = 为2 | 其他值 }} {{#switch: 3 | 1 = 为1 | 2 = 为2 | 其他值 }}</pre> || 为1<br>其他值 || 默认值通常写在最后 |- | <pre>{{#switch: 1 | 1 = 为1 | #default = 其他值 | 2 = 为2 }}</pre> || 其他值 || 使用<code>#default</code>可以出现在任意位置 |- | <pre> {{#switch: 1 | 1 = 为1 | 2 = 为2 }}</pre> || || 不写默认值不返回结果 |} === 分组 === {| class="wikitable" style="overflow:auto;" |+ #switch分组 |- ! 示例 !! 输出结果 !! 备注 |- | <pre>{{#switch: 2 | 1 | 2 | 3 = 小于等于3 | 4 | 5 | 6 = 大于3,小于7 | 不在区间范围,请输入1-6 }}</pre> || 小于等于3 || 1,2,3为一组,4,5,6为一组 |} === 比较 === 若被比较字符串和测试用例字符串都是数字,那么按照数值进行比较;反之若存在一个非纯数字符串,都会按照字符串比较规则进行。<ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #switch比较 |- ! 示例 !! 输出结果 !! 备注 |- | <pre>{{#switch: | = Nothing | 3 = 结果为3 | 其他值 }}</pre> || Nothing || 可以为空 |- | <pre>{{#switch: 1+2 | 2 = 结果为2 | 3 = 结果为3 | 其他值 }}</pre> || 其他值 || 作为字符串“1+2” |- | <pre>{{#switch: {{#expr:1+2}} | 2 = 结果为2 | 3 = 结果为3 | 其他值 }}</pre> || 结果为3 || 计算后再比较 |} === 等号 === {| class="wikitable" style="overflow:auto;" |+ #switch等号 |- ! 示例 !! 输出结果 !! 备注 |- | <pre>{{#switch: 1=2 | 1=2 = raw | 1{{=}}2 = template | default }}</pre> || template || 使用模板将“=”号包含 |- | <pre>{{#switch: 1=2 | 1&#61;2 = html | default }}</pre> || html || 使用HTML标识码<code><nowiki>&#61;</nowiki></code> |} === 使用参数 === 一般是用在模板里。 <pre> {{#switch: {{{1}}} | 1 = 为1 | 2 = 为2 | 其他值 }}</pre> === 和#ifeq的转换 === * <code><nowiki>{{#switch:{{{1}}} |condition1=branch1 |condition2=branch2 |condition3=branch3 |branch4}}</nowiki></code> 等效于 * <code><nowiki>{{#ifeq:{{{1}}}|condition1 |branch1 |{{#ifeq:{{{1}}}|condition2 |branch2 |{{#ifeq:{{{1}}}|condition3 |branch3 |branch4}}}}}}</nowiki></code> 比如: <pre> {{#switch:abc |Abc = 输入为Abc |abc = 输入为abc |输入未知 }} 等价于: {{#ifeq: abc | Abc | 输入为Abc | {{#ifeq: abc | abc | 输入为abc | 输入未知 }} }} </pre> == #time == 该解析器函数接收一个(公历的)日期或者时间,并根据给定的语法将其格式化。可以指定日期/时间对象,页面最后被渲染为HTML时的时间。<ref name="pF" />更加详细的参考[https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/zh##time 官网#time]。 * <nowiki>{{#time: format string }}</nowiki> * <nowiki>{{#time: format string | date/time object }}</nowiki> * <nowiki>{{#time: format string | date/time object | language code }}</nowiki> * <nowiki>{{#time: format string | date/time object | language code | local }}</nowiki> ** date/time object是使用的[https://www.php.net/function.strtotime PHP函数strtotime]的日期格式 {| class="wikitable" style="overflow:auto;" |+ #time |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#time: Y-m-d }}</nowiki></code> || {{#time: Y-m-d }} | rowspan='4' | * '''Y:'''年,返回4位数的年份 * '''y:'''年,返回2位数的年份 * '''n:'''月,9,12 * '''m:'''月,09,12,0填充 * '''j:'''日,9,12 * '''d:'''日,09,12,0填充 * '''z:'''年内的第几天,1月1日是第0天 * '''g:'''12小时制,7点 * '''h:'''12小时制,07点,0填充 * '''G:'''24小时制,7点 * '''H:'''24小时制,07点,0填充 * '''i:'''分 * '''s:'''秒 * '''D:'''星期几,{{#time:D}} * '''N:'''星期几,{{#time:N}} * '''W:'''周数,{{#time:W}} |- | <code><nowiki>{{#time: y年m月d日 H:i:s }}</nowiki></code> || {{#time: y年m月d日 H:i:s }} |- | <code><nowiki>{{#time: y年m月d日 H:i:s |+8 hours}}</nowiki></code> || {{#time: y年m月d日 H:i:s |+8 hours}} |- | <code><nowiki>{{#time: Y年的第W周,第z天}}</nowiki></code> || {{#time: Y年的第W周,第z天}} |} == #timel == 该函数等价于{{#time: ... }},其中local参数设置为true,因此总是使用wiki的本地时间。<ref name="pF" />更加详细的参考[https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/zh##time 官网#time]。 * <nowiki>{{#timel: format string }}</nowiki> * <nowiki>{{#timel: format string | date/time object }}</nowiki> * <nowiki>{{#timel: format string | date/time object | language code }}</nowiki> ** date/time object是使用的[https://www.php.net/function.strtotime PHP函数strtotime]的日期格式 {| class="wikitable" style="overflow:auto;" |+ #timel |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#timel: Y-m-d }}</nowiki></code> || {{#timel: Y-m-d }} | rowspan='4' | 其他语法同[[##time|#time]] |- | <code><nowiki>{{#timel: y年m月d日 h:i:s }}</nowiki></code> || {{#timel: y年m月d日 h:i:s }} |- | <code><nowiki>{{#timel: y年m月d日 H:i:s}}</nowiki></code> || {{#timel: y年m月d日 H:i:s}} |- | <code><nowiki>{{#timel: Y年的第W周,第z天}}</nowiki></code> || {{#timel: Y年的第W周,第z天}} |} == #titleparts == 此函数将页面标题根据斜杠划分成多个分段,然后输出返回这些分段中的部分。<ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #titleparts |- | colspan='3' | <nowiki>{{#titleparts: 页面名称 | 需要返回的分段数量 | 要返回的第一个分段 }}</nowiki><br><code>需要返回的分段数量</code>默认为0<br><code>要返回的第一个分段</code>未指定或者是0则默认为1 |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#titleparts: a/b/c/d/e }}</nowiki></code> || {{#titleparts: a/b/c/d/e}} || 返回的首字母有大写 |- | <code><nowiki>{{#titleparts: a/b/c/d/e|0|2 }}</nowiki></code> || {{#titleparts: a/b/c/d/e|0|2 }} || 返回的首字母没有大写 |- | <code><nowiki>{{#titleparts: a/b/c/d/e | 2 | 2 }}</nowiki></code> || {{#titleparts: a/b/c/d/e | 2 | 2 }} || |- | <code><nowiki>{{#titleparts: a/b/c/d/e | | 2 }}</nowiki></code> || {{#titleparts:a/b/c/d/e | | 2 }} || |- | <code><nowiki>{{#titleparts: a/b/c/d/e | -1 }}</nowiki></code> || {{#titleparts: a/b/c/d/e | -1 }} || 从字符串的末尾剥离1段 |- | <code><nowiki>{{#titleparts: a/b/c/d/e | -2 }}</nowiki></code> || {{#titleparts: a/b/c/d/e | -4 }} || 从字符串的末尾剥离4段 |- | <code><nowiki>{{#titleparts: a/b/c/d/e | -1 | 2 }}</nowiki></code> || {{#titleparts: a/b/c/d/e | -1 | 2 }} || 从字符串的末尾剥离一段,然后返回第二段及以后的段 |- | <code><nowiki>{{#titleparts:a/b/c/d/e | -1 | -2 }}</nowiki></code> || Talk:a/b/c/d/e | -1 | -2 }} || 从倒数第二个元素开始复制;从字符串的末尾剥离一段 |} == 字符串函数 == === #len === <code>#len</code>函数返回指定字符串的长度。<ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#len:string}}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#len:abcedefg}}</nowiki></code> || {{#len:abcedefg}} || |- | <code><nowiki>{{#len:中文}}</nowiki></code> || {{#len:中文}} || 一个文字算作1 |- | <code><nowiki>{{#len: a b }}</nowiki></code> || {{#len: a b }} || ab之间有3个空格,前后的空格不计算 |- | <code><nowiki>{{#len:<nowiki></nowiki>This is a <nowiki></nowiki></nowiki>test}}</code> || {{#len:<nowiki>This is a </nowiki>test}} || nowiki标签之间的都为0 |- | <code><nowiki>{{#len:&nbsp;}}</nowiki></code> || {{#len: }} || HTML字符这种直接计算,例子中为空格 |} === #pos === <code>#pos</code>函数返回给定搜索词在字符串中的位置。 <ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#pos:string|搜索词|offset}}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#pos:I am good.|good}}</nowiki></code> || {{#pos:I am good.|good}} || 从0开始数,I是0 |- | <code><nowiki>{{#pos:I am good.|good|6}}</nowiki></code> || {{#pos:I am good.|good|6}} || 没找到就返回空 |- | <code><nowiki>{{#pos:I am good.|o}}</nowiki></code> || {{#pos:I am good.|o}} || 只返回一个 |- | <code><nowiki>{{#pos:I am good.| o | 7}}</nowiki></code> || {{#pos:I am good.|o |7}} || 跳过第一个o |} === #rpos === <code>#rpos</code>函数返回给定搜索词在字符串中的'''最后的'''位置。 <ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#rpos:string|搜索词}}</nowiki> |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#rpos:I am good.| o }}</nowiki></code> || {{#rpos:I am good.|o}} || 仅返回后面的一个o |- | <code><nowiki>{{#rpos:I am good.| z }}</nowiki></code> || {{#rpos:I am good.|z}} || 没找到返回-1 |} === #sub === <code>#sub</code>函数返回指定字符串中的子字符串(substring)。 <ref name="pF" /> {| class="wikitable" |- | 正向数 ||0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 |- | 负向数 || 10 || 9 || 8 || 7 || 6 || 5 || 4 || 3 || 2 || 1 |- | 字符串 || I || || a || m || || g || o || o || d || . |} {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#sub:string|start|length}}</nowiki><br> * start:为正数以0开头,负数以1开头 * length:正数正向数length个,负数反向切掉(-length)个 |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#sub:I am good.|2|2}}</nowiki></code> || {{#sub:I am good.|2|2}} || “am good.”,取2个字符 |- | <code><nowiki>{{#sub:I am good.|4|-2}}</nowiki></code> || {{#sub:I am good.|4|-2}} || “ good.”,-2就是忽略掉“d.”,这里注意空格被删掉了 |- | <code><nowiki>{{#sub:I am good.|5|-2}}</nowiki></code> || {{#sub:I am good.|5|-2}} || “good.”,-2就是忽略掉“d.”,跟上面一样 |- | <code><nowiki>{{#sub:I am good.|-3|2 }}</nowiki></code> || {{#sub:I am good.|-3|2 }} || “od.”,2正向取od |- | <code><nowiki>{{#sub:I am good.|-3|-1 }}</nowiki></code> || {{#sub:I am good.|-3 |-1 }} || “od.”,-1忽略掉“.”,取od,结果同上 |- | <code><nowiki>{{#sub:I am good.|5|-6 }}</nowiki></code> || {{#sub:I am good.|5|-6 }} || 超过返回空 |- |<code><nowiki>{{#sub:</nowiki><nowiki><nowiki></nowiki>This is a <nowiki></nowiki><nowiki><nowiki>test|1}}</code></nowiki> || {{#sub:<nowiki>This is a </nowiki>test|1}} || <span style="color:red;">存疑</span> |} === #count === <code>#count </code>函数返回指定子字符串在提供的文本中出现的次数。 <ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#count:string|substring}}</nowiki><br> |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#count:I am good.|am}}</nowiki></code> || {{#count:I am good.|am}} || |- | <code><nowiki>{{#count:I am good.|ama}}</nowiki></code> || {{#count:I am good.|ama}} || |} === #replace === <code>#replace</code>函数返回指定的字符串,并将所有搜索词出现的地方替换成替换词。 <ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#replace:string|search term|replacement term}}</nowiki><br> * 如果search term未指定或者为空,则搜索单个空格。 * 如果replacement term未指定或者为空,则所有search term都会从string中移除。 |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#replace:I am good.|am | was}}</nowiki></code> || {{#replace:I am good.|am | was}} || |- | <code><nowiki>{{#replace:I am good.|o|O }}</nowiki></code> || {{#replace:I am good.|o|O }} || |- | <code><nowiki>{{#replace:I am good.||X }}</nowiki></code> || {{#replace:I am good.||X }} || 未指定要搜索的子串 |- | <code><nowiki>{{#replace:I am good.|am| }}</nowiki></code> || {{#replace:I am good.|am| }} || 未指定要替换的内容 |} === #explode === <code>#explode</code>函数将指定的字符串分成多个片段,返回其中一段。 <ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#explode:string|delimiter|position|limit}}</nowiki><br> * position:从0开始 * limit一般不用 |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#explode:I am good.| am | 1}}</nowiki></code> || {{#explode:I am good.| am | 1}} || 可以是多个字符 |- | <code><nowiki>{{#explode:I am good.| am | 3}}</nowiki></code> || {{#explode:I am good.| am | 3}} || 超过了返回空 |- | <code><nowiki>{{#explode:a/b/c/d |/|2 }}</nowiki></code> ||{{#explode:a/b/c/d |/|2 }} || 可以是单个字符 |- | <code><nowiki>{{#explode:a/b/c/d |/|-1 }}</nowiki></code> ||{{#explode:a/b/c/d |/|-1 }} || 负数倒着取,从1开始 |- | <code><nowiki>{{#explode:1oo234 |o|1 }}</nowiki></code> ||{{#explode:1oo234 |o|1 }} || 两个相邻的delimiter,则中间取空格0(1),1( ),2(234) |- | <code><nowiki>{{#explode:1oo234 |o|2}}</nowiki></code> ||{{#explode:1oo234 |o|2 }} || 两个相邻的delimiter,则中间取空格0(1),1( ),2(234) |} === #urldecode === <code>#urldecode</code>函数将“[https://zh.wikipedia.org/wiki/%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81 URL编码]”的转义字符转换回原来的可读字符。 <ref name="pF" /> {| class="wikitable" style="overflow:auto;" |+ #len |- | colspan='3' | <nowiki>{{#urldecode:URL值}}</nowiki><br> * position:从0开始 * limit一般不用 |- ! 示例 !! 输出结果 !! 备注 |- | <code><nowiki>{{#urldecode:https://zh.wikipedia.org/wiki/%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81}}</nowiki></code> || {{#urldecode:https://zh.wikipedia.org/wiki/%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81}} || 转义 |} == 参考 == <references /> [[分类:入门]]
返回至“
解析器函数
”。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
Wiki工具
Wiki工具
特殊页面
页面值
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志