String/Doc

这是Module:String的文档页面

这个模块提供了基本的字符串操作函数。

此处提供的大多数函数都可以使用命名参数、未命名参数或混合参数调用。 如果使用命名参数,Mediawiki将自动从参数中删除任何前导或尾随空格。取决于预期用途,保留或删除此类空白各有优劣的。

全局参数

    ignore_errors
    如果设置为“true”或“1”,则任何错误条件都将导致返回空字符串而不是错误消息。
    error_category
    如果发生错误,则指定要包含在错误消息中的分类的名称。默认分类为Category:字符串模块报告的错误(18)。
    no_category
    如果设置为“true”或 1,则在生成错误时不会添加任何类别。

此模块的单元测试可在Module:String/testcases进行。

len

此函数返回目标字符串的长度。

用法:

    {{#invoke:String|len|target_string}}

    {{#invoke:String|len|s= target_string }}

参数:

    s
    目标字符串

示例:

  • {{#invoke:String|len| abcdefghi }} → 11
  • {{#invoke:String|len|s= abcdefghi }} → 9

sub

    此函数返回指定索引处目标字符串的子字符串。

用法:

    {{#invoke:String|sub|target_string|start_index|end_index}}

    {{#invoke:String|sub|s= target_string |i= start_index |j= end_index }}

参数:

    s
    返回此字符串的子集
    i
    要返回的子字符串的第一个索引,默认为1。
    j
    要返回的字符串的最后一个索引,默认为最后一个字符。

字符串的第一个字符的索引为1。如果i或j是负值,则将其解析为通过从字符串末尾计数来选择字符。因此,值-1与选择字符串的最后一个字符相同。

如果请求的索引超出给定字符串的范围,则会报告错误。

示例:

  • "{{#invoke:String|sub| abcdefghi }}" → " abcdefghi "
  • "{{#invoke:String|sub|s= abcdefghi }}" → "abcdefghi"
  • "{{#invoke:String|sub| abcdefghi | 3 }}" → "bcdefghi "
  • "{{#invoke:String|sub|s= abcdefghi |i= 3 }}" → "cdefghi"
  • "{{#invoke:String|sub| abcdefghi | 3 | 4 }}" → "bc"
  • "{{#invoke:String|sub|s= abcdefghi |i= 3 |j= 4 }}" → "cd"

sublength

此函数实现了{{Str sub old}}的功能,保留仅为维持旧的模板。

用法:

    {{#invoke:String|sublength|s= 目标字符串 |i= 开始索引 |len= 长度 }}

参数:

    s
    字符串
    i
    返回的子串的开始索引。第一个个字符的索引为0。
    len
    返回的字符串的长度,默认为最后一个字符。

示例:

  • {{#invoke:String|sublength|s= abcdefghi }} → abcdefghi
  • {{#invoke:String|sublength|s= abcdefghi |i= 3 }} → defghi
  • {{#invoke:String|sublength|s= abcdefghi |i= 3 |len= 4 }} → defg

match

此函数从源字符串返回一个匹配指定模式的子字符串。

用法:

    {{#invoke:String|match|源字符串|模式字符串|开始索引|匹配数量|纯标记|无匹配输出}}

或者

    {{#invoke:String|match|s= 源字符串 |pattern= 模式字符串 |start= 开始索引|match= 匹配数量|plain= 纯标记 |nomatch= 无匹配输出 }}

参数:

    s
    在这个字符串内搜索
    pattern
    需要在字符串内搜索的模式或者字符串
    start
    源字符串内的索引,从此索引开始搜索。字符串的第一个字符的索引为1。默认为1。
    match
    在一些情况下,可能需要在单个字符串中进行多次匹配。此参数指定了返回哪一个匹配,其中第一个匹配就是match=1。如果指定了负数,那么返回的匹配从最后一个匹配开始数的。因此match=-1表达返回最后一个匹配。默认为1。
    plain
    pattern是否应该理解为纯字符串,而非正则表达式。默认为false。
    nomatch
    如果没有找到匹配,返回nomatch的值,而不是一个错误。

如果match_number或start_index超出了查询的字符串的范围,此函数会产生错误。如果没有找到匹配,也会产生错误。

如果添加了参数ignore_errors=true,那么错误会被禁止,失败时返回的是一个空字符串。

匹配是Lua的一种正则表达式,更多信息可以参考:

示例:

  • {{#invoke:String|match| abc123def456 |%d+}} → 123
  • {{#invoke:String|match|s= abc123def456 |pattern= %d+ }} → 123
  • {{#invoke:String|match| abc123def456 |%d+|6}} → 23
  • {{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 }} → 3
  • {{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 |match= 2 }} → 456
  • {{#invoke:String|match|s= abc123%d+ |pattern= %d+ }} → 123
  • {{#invoke:String|match|s= abc123%d+ |pattern= %d+ |plain= true }} → %d+
  • {{#invoke:String|match|s= abc |pattern= %d }}字符串模块出错:找不到匹配
  • {{#invoke:String|match|s= abc |pattern= %d |nomatch= No numeric characters in string }} → No numeric characters in string
  • {{#invoke:String|match|s= abc |pattern= %d |ignore_errors= true }}
  • {{#invoke:String|match|s= 0012001200 |pattern= 0*(%d*) }} → 12001200

pos

返回在目标字符串中的位置pos处的单个字符。

用法:

    {{#invoke:String|pos|目标字符串|索引值}}

    {{#invoke:String|pos|target= 目标字符串 |pos= 索引值 }}

参数:

    目标
    在此字符串内搜索
    pos
    需要返回的字符所在的索引。

第一个字符的索引值为1。

如果为负值,则此函数会从字符串的最后面开始倒数。也就是说,pos=-1相当于返回最后一个字符。

如果此值为0,或者超出了字符串的长度,则会返回错误。

示例:

  • {{#invoke:String|pos| abcdefghi | 4 }} → c
  • {{#invoke:String|pos|target= abcdefghi |pos= 4 }} → d

str_find

此函数与{{str_find}}的行为重复,包含了其所有的技巧,仅为支持存在的模板,但是对于新的代码和模板不推荐使用。新的代码建议直接使用find函数。

返回源字符串中匹配目的的第一个索引。索引是从1开始数的,如果源字符串中找不到目标字符串,则返回-1。

注意:如果目标字符串是空白或者缺失,则函数返回值为1,这可能不是预期的行为,必须要单独考虑。

用法:

    {{#invoke:String|str_find|源字符串|目标字符串}}

    {{#invoke:String|str_find|source= 源字符串 |target= 目标字符串 }}

参数:

    source
    在此字符串内搜索
    target
    在源内搜索的字符串

示例:

  • {{#invoke:String|str_find| abc123def }} → 1
  • {{#invoke:String|str_find|source= abc123def }} → 1
  • {{#invoke:String|str_find| abc123def |123}} → 5
  • {{#invoke:String|str_find|source= abc123def |target= 123 }} → 4
  • {{#invoke:String|str_find| abc123def |not}} → -1

find

此函数在一个字符串内搜索另一个字符串。

用法:

    {{#invoke:String|find|源字符串|目标字符串|开始索引|纯标记}}

    {{#invoke:String|find|source= 源字符串 |target= 目标字符串 |start= 开始索引 |plain= 纯标记 }}

参数:

    source
    在此字符串内搜索
    target
    在源字符串内搜索的字符串
    start
    在源字符串的此位置索引版主开始搜索。默认为1
    plain
    布尔值标记,表示目的应该被理解为纯文本,而不是Scribunto ustring模式,默认为true

此函数返回了在索引>"start",其中"source"中可以持续到"target"。索引是从1开始数的。如果没有找到目标字符串,函数返回0。如果索引或者目的缺失或者是空的,此函数也会返回0。

此函数应该可以安全地操作UTF-8字符串。

示例:

  • {{#invoke:String|find|abc123def|12}} → 4
  • {{#invoke:String|find|source=abc123def|target=12}} → 4
  • {{#invoke:String|find|source=abc123def|target=pqr}} → 0
  • {{#invoke:String|find| abc123def |123}} → 5
  • {{#invoke:String|find|source= abc123def |target= 123 }} → 4
  • {{#invoke:String|find|source=abc123def|target=%d |start=3 |plain=false }} → 4

与未命名的参数使用时,两端的空格会被保留且被计入:

  • {{#invoke:String|find| abc123def |c|false}} → 5
  • {{#invoke:String|find|source= abc123def |target=c|plain=false}} → 3
  • {{#invoke:string|find|abc 123 def|%s|plain=false}} → 4

检测字符串是否存在:

  • {{#ifexpr:{{#invoke:string|find|haystack|needle}}|Found needle|Didn't find needle}} → Didn't find needle

replace(gsub)

此函数在一个字符串内替换到目的字符串或者模式。此函数是通过调用mw.ustring.gsub实现的。

用法:

    {{#invoke:String|replace|源字符串|模式字符串|替换字符串|替换次数|纯标记}}

    {{#invoke:String|replace|source= 源字符串 |pattern= 模式字符串 |replace= 替换字符串 |count= 替换次数 |plain= 纯标记 }}

参数:

    source
    在此字符串内搜索
    pattern
    在源内查找此字符串或者模式
    replace
    使用此字符串替换
    count
    需要替换的次数,默认为all
    plain
    布尔值标记,表示目的应该被理解为纯文本,而不是Scribunto ustring模式,默认为true

示例:

  • "{{#invoke:String|replace| abc123def456 |123|XYZ}}" → " abcXYZdef456 "
  • "{{#invoke:String|replace|source= abc123def456 |pattern= 123 |replace= XYZ }}" → "abcXYZdef456"
  • "{{#invoke:String|replace| abc123def456 |%d+|XYZ|1|false}}" → " abcXYZdef456 "
  • "{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |count=1 |plain= false }}" → "abcXYZdef456"
  • "{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |plain= false }}" → "abcXYZdefXYZ"
  • {{#invoke:String|replace|source= 0012001200 |pattern= ^0* |plain= false }} → 12001200

rep

将一个字符串重复n次,其本质为string.rep

用法:

    {{#invoke:String|rep||次数}}

参数:

    需要重复的字符串
    次数
    重复的次数

示例:

  • "{{#invoke:String|rep|hello|3}}" → "hellohellohello"
  • "{{#invoke:String|rep| hello | 3 }}" → " hello hello hello "

Tags:

String/Doc 全局参数String/Doc sublengthString/Doc matchString/Doc str_findString/Doc findString/Doc replace(gsub)String/DocModule:String

🔥 Trending searches on Wiki 中文:

乘风破浪 (第三季)拿破仑一世金所泫我的英雄学院角色列表防彈少年團賴慰玲名偵探柯南動畫集數列表乾隆帝2019冠状病毒病疫情機動戰士GUNDAM SEED系列角色列表时辰金采源李白三年困难时期李宗瑞性侵案朱元璋鄧炳強蜡笔小新极权国家列表王岐山TWS (團體)伊朗一带一路但願人長久 (電影)宇多田光以色列胡杏兒清朝南京大屠殺花间令LE SSERAFIMPornhub許瑋甯THE NEW GATE台灣積體電路製造无用的谎言P站只要有空深圳市Sweet Home马德里网球公开赛三体 (小说)黃麟凱殺人案咒術迴戰角色列表停滯性通貨膨脹吹響吧!上低音號汪精卫凱莉·珍娜何佩珊 (台灣)2024年中華民國總統選舉切尔诺贝利核事故蔡奇成毅1960年智利大地震朝鲜战争中華民國總統过热俄乌战争期间对乌克兰的援助列表(G)I-DLE原音兄弟奥斯卡最佳女配角奖贾斯汀·比伯淚之女王愛·回家之開心速遞鄭中基三星堆遗址溥仪陳昊宇我獨自升級中國阿道夫·希特勒尾崎豐蔣萬安李雅英 (啦啦隊)唐納·川普林過雲🡆 More