置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

模板:CollectCodeData/doc

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
跳至導覽 跳至搜尋

簡介

該模板可以在條目的源代碼中收集數據,並通過正則表達式進行過濾。

用法

{{CollectCodeData
|pages= 页面名,可以添加多个页面名,中间使用“,”(全角逗号)隔开。自动处理重定向
|ptns= 正则表达式,该处接受两种值,一种是一个单独的正则表达式,头尾使用“/”(斜杠)进行包裹,另一种为使用array模板生成的由多个正则表达式组成的变量组组名
|filter= 过滤用正则表达式,每个结果都会与此处的正则轮流匹配,该处接受两种值,一种是使用array模板生成的一维变量组(一组匹配规则),一种为二维变量组(多组匹配规则)
|split= 返回数据的间隔符,默认为“,”(逗号)
}}

其中,三個參數也行分別對應匿名參數1、2、3。

收集的模式為用傳入的正則依次匹配所有頁面的代碼,將匹配的結果收集起來,而不是一層一層地過濾

若頁面名中包含全角逗號,請使用{{ce|,}}進行轉義。

若正則表達式中定義了捕獲組,則將所有捕獲組都加入收集的結果中,若未定義,則將匹配的整個字符串加入收集的結果中。

定義正則表達式組時不需要在兩邊加上斜槓,定義的寫法請參考{{array}}模板。

大多數情況下,得到的數據都需要使用其他模板繼續進行處理。

示例

通過以下兩個頁面的文本內容進行示例。

在風和日麗的一天,兒子站在梯子上,對母親說:「幫我扶一把,我要摔倒了。」

母親卻說:「等一等,我在曬抱枕。」

雖然兒子覺得扶梯子更緊迫一些,但他不敢在母上大人面前說出來。

兒子突然意識到了什麼,從梯子重重摔在地上,再也無法保持平衡。

「抱枕?你怎麼在洗——」他不顧渾身疼痛,大聲朝母親說。

母親卻說:「你說說你,把這麼好看的小姑娘困在抱枕里,天天光顧着抱,也不知道洗一下,髒成什麼樣了。我用清水給她泡一泡,乾淨的小姑娘才更俊。」

沒想到兒子更加悲傷,在陽台(也可能是洗衣間、客廳等場所)悲痛欲絕地說,抱枕不能水洗……

示例1

{{collectCodeData
|pages= T:CollectCodeData/doc/Example1
|ptns= /在(...)/
}}

結果:風和日,梯子上,曬[[,母上大

示例2

{{array|new|name=patterns
|在(...)
|说...
}}
{{collectCodeData
|pages= T:CollectCodeData/doc/Example1,T:CollectCodeData/doc/Example2
|ptns= patterns
}}

結果:風和日,梯子上,曬[[,母上大,地上,,洗——,[[抱,陽台(,說:「幫,說:「等,說出來。,說。

,說:「你,說說你,,說,抱枕

:有換行是因為原先文本中就有換行;「你說說你」的第二個「說」並未被識別。

示例3

{{array|new|name=patterns
|在(...)
|说...
}}
{{array|new|name=filter
|{{array|in|%p|@}}            <!-- 将所有标点符号改为“@” -->
|{{array|in|[上抱]}}          <!-- 省略则替换为空 -->
}}
{{collectCodeData
|pages= T:CollectCodeData/doc/Example1,T:CollectCodeData/doc/Example2
|ptns= patterns
|filter= filter
}}

結果:風和日,梯子,曬@@,母大,地@,洗@@,@@,陽台@,說@@幫,說@@等,說出來@,說@

,說@@你,說說你@,說@枕