這是一個更新中的頁面,相關內容可能尚未完善或者創建,歡迎您參與本頁面的完善。
模塊:String的功能是提供基本的字符串函數。根據這些基本函數能擴展出更多的用法。
大多數函數都提供命名參數和未命名參數,甚至可以混合調用。如果使用命名參數,系統將自動刪除該參數兩端的空白。
全局選項
基本函數
len
代碼示例 |
{{#invoke:String|len|target_string}}
|
輸出效果 |
13
|
代碼示例 |
{{#invoke:String|len|s= target_string }}
|
輸出效果 |
13
|
sub
代碼格式 |
{{#invoke:String|sub|target_string|start_index|end_index}}
|
代碼示例 |
{{#invoke:String|sub|xx遲遲不動手,背後恐怕有骯髒的屁眼交易。|4|6}}
|
輸出效果 |
遲不動
|
代碼格式 |
{{#invoke:String|sub|s= target_string |i= start_index |j= end_index }}
|
代碼示例 |
{{#invoke:String|sub|s= 背後恐怕有骯髒的P眼交易 |i= 9 |j= 12 }}
|
輸出效果 |
P眼交易
|
s |
源字符串
|
i |
子字符串的起始位置,默認為1
|
j |
子字符串的終止位置,默認為最後一個字符的位置
|
字符串的第一個字符位置為1。如果i或j是負值,則會從字符串結尾計數選擇字符。因此,值為-1類似於選擇字符串的最後一個字符。
如果下標越界,會產生錯誤。
sublength
代碼格式 |
{{#invoke:String|sublength|s= target_string |i= start_index |len= length }}
|
代碼示例 |
{{#invoke:String|sublength|s=背後恐怕有骯髒的P眼交易|i=1|len=4}}
|
輸出效果 |
後恐怕有
|
s |
源字符串
|
i |
子字符串的起始位置,默認為0
|
len |
子字符串的長度,默認為能取到的最大長度
|
字符串的第一個字符位置為0,和sub不一樣,需要注意。
這個函數已經淘汰,目測是為了保持兼容性留下來的。
match
代碼格式 |
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
|
代碼示例 |
{{#invoke:String|match|還不動手,背後恐怕有骯髒的屁眼交易。|骯髒|1|1|true}}
|
輸出效果 |
骯髒
|
代碼格式 |
{{#invoke:String|match|s= source_string |pattern= pattern_string |start= start_index|match= match_number|plain= plain_flag |nomatch= nomatch_output }}
|
代碼示例 |
{{#invoke:String|match|s=背後恐怕有骯髒的P眼交易|pattern=[a-zA-Z]|start=2|match=-1|plain=false|nomatch=沒找到poi}}
|
輸出效果 |
P
|
s |
源字符串
|
pattern |
查找的字符串或正則表達式
|
start |
查找的起始位置,默認為1
|
match |
在存在多個匹配結果時,指定要返回的匹配項,若為-1則返回最後一個。默認為1。
|
plain |
pattern是否為純文本(非正則),默認為false
|
nomatch |
如果沒有匹配項,不輸出錯誤信息而輸出指定值
|
如果match_number或START_INDEX超出範圍的字符串被查詢,那麼這個功能產生錯誤。如果沒有找到匹配,也會產生錯誤。
如果加上參數ignore_errors= true,則錯誤將被抑制,一個空字符串將在任何故障被退回。
For information on constructing Lua patterns, a form of regular expression, see:
pos
代碼格式 |
{{#invoke:String|pos|target_string|index_value}}
|
代碼示例 |
{{#invoke:String|pos|有句話說出來你可能不信|3}}
|
輸出效果 |
話
|
代碼格式 |
{{#invoke:String|pos|target= target_string |pos= index_value }}
|
代碼示例 |
{{#invoke:String|pos|target=有句話說出來你可能不信|pos=-2}}
|
輸出效果 |
不
|
第一個字符的索引值為1。如果設置負值,將從字符串的結尾倒數選擇一個字符。換句話說POS=-1相當於最後一個字符。
0或超出字符串的長度會返回一個錯誤。
find
代碼格式 |
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}
|
代碼示例 |
{{#invoke:String|find|吃葡萄不吐葡萄皮|葡萄|4|true}}
|
輸出效果 |
6
|
代碼格式 |
{{#invoke:String|find|source= source_str |target= target_str |start= start_index|plain= plain_flag }}
|
代碼示例 |
{{#invoke:String|find|source=難道真的有腌臢的屁眼交易?|target=腌臢|start=3|plain=true}}
|
輸出效果 |
6
|
source |
源字符串
|
target |
待查詢的字符串
|
start |
起始查詢位置,默認為1
|
plain |
target是否為純文本(非正則),默認為true
|
返回其中的target在source內發現的第一個大於start的位置。如果沒有找到target,則該函數返回0。如果source或target的值為missing或empty,也返回0。
這個函數必須基於UTF-8的安全字符串。
replace
代碼格式 |
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
|
代碼示例 |
{{#invoke:String|replace|康帥博(中國)山寨有險公司|^(%s*)(.*)(%(.*%))(%s*)|%2|all|false}}
|
輸出效果 |
康帥博山寨有險公司
|
代碼格式 |
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|count=replacement_count|plain=plain_flag}}
|
代碼示例 |
{{#invoke:String|replace|source=水滸殺:宋江|pattern=^(.*):(.*)$|replace=%2|count=1|plain=false}}
|
輸出效果 |
宋江
|
代碼示例 |
{{#invoke:String|replace|source=水滸殺:宋江水|pattern=水|replace=尿|count=1}}
|
輸出效果 |
尿滸殺:宋江水
|
source |
源字符串
|
pattern |
匹配字符串或正則表達式
|
replace |
替換目標
|
count |
替換次數,默認為all
|
plain |
pattern是否為純文本(非正則),默認為true
|
rep
代碼格式 |
{{#invoke:String|rep|source|count}}
|
代碼示例 |
{{#invoke:String|rep|妮可|2}}妮
|
輸出效果 |
妮可妮可妮
|
實用擴展
left/mid/right
- 簡單字符串截取函數:left(x)、mid(x,y)、right(x)的實現方法
表達式 |
功能代碼+注釋 |
實現效果
|
left(5) |
{{#invoke:String|sub|administrator|j=5}} (註)j=x |
admin
|
mid(5,2) |
{{#invoke:String|sublength|s=administrator|i=4|len=2}} (註)i=x-1;len=y |
ni
|
{{#invoke:String|sub|administrator|i=5|j=6}} (註)i=x;j=x+y-1 |
ni
|
right(5) |
{{#invoke:String|sub|administrator|i=-5}} (註)i=-x |
rator
|
- 模版代碼
表達式 |
功能代碼 |
調用方法
|
left(x) |
{{#invoke:String|sub|{{{1}}}|j={{{2}}}}} |
{{模版名|源字符串|左起字符數}}
|
mid(x,y) |
{{#invoke:String|sub|{{{1}}}|i={{{2}}}|j={{#expr:{{{2}}}+{{{3}}}-1}}}} |
{{模版名|源字符串|起始位置|字符數}}
|
right(x) |
{{#invoke:String|sub|{{{1}}}|i={{#expr:-{{{2}}}}}}} |
{{模版名|源字符串|右起字符數}}
|
startwith/contains/endwith
- 首尾判斷:startwith()、endwith()的實現方法
- 包含判斷:contains()的實現方法
表達式 |
功能代碼 |
實現效果+注釋
|
startwith() |
{{#invoke:String|find|administrator|admin}} |
1 (註)返回1則為true,其餘值為false
|
contains() |
{{#invoke:String|find|administrator|stra}} |
7 (註)返回0則為false,其餘值為true
|
endwith() |
{{#invoke:String|match|administrator|rator$|plain=false|nomatch=0}} |
rator (註)返回0則為false,其餘值為true
|
- 布爾值輸出
表達式 |
功能代碼 |
輸出值
|
startwith() |
{{#ifeq:{{#invoke:String|find|administrator|admin}}|1|true|false}} |
true
|
contains() |
{{#ifeq:{{#invoke:String|find|administrator|stra}}|0|false|true}} |
true
|
endwith() |
{{#ifeq:{{#invoke:String|match|administrator|rator$|plain=false|nomatch=0}}|0|false|true}} |
true
|
- 模版代碼
表達式 |
功能代碼 |
調用方法
|
startwith() |
{{#ifeq:{{#invoke:String|find|{{{1}}}|{{{2}}}}}|1|true|false}} |
{{模版名|源字符串|待匹配首字符串}}
|
contains() |
{{#ifeq:{{#invoke:String|find|{{{1}}}|{{{2}}}}}|0|false|true}} |
{{模版名|源字符串|待匹配字符串}}
|
endwith() |
{{#ifeq:{{#invoke:String|match|{{{1}}}|{{{2}}}$|plain=false|nomatch=0}}|0|false|true}} |
{{模版名|源字符串|待匹配尾字符串}}
|
max/min
split/join
- 字符串連接、拆分:split()、join()的實現方法
- 模版代碼
表達式 |
功能代碼 |
調用方法
|
join() |
{{#fornumargs:num|value|
{{#switch:{{#var:num|}}
| 1={{#var:value}}
| #default={{#if:{{#var:value|}}|{{{char|,}}}{{#var:value}}}}
}}
}} |
{{模版名|char=連接字符|字符串1|字符串2|字符串3...}}
|
split() |
{{Str split}} |
{{Str split|源字符串|分割字符|變量前綴}}
|
現成模版
- 用於切掉參數
{{{1}}}
中的最後{{{2}}}
個字符(不填則視作切掉0個字符)。
- 從左切除
- 同left()
- 返回左起第n個字符(不含)右邊的文字。
- 同right()
參見