Модуль:String/doc: различия между версиями

Материал из ВиКирби
Перейти к навигацииПерейти к поиску
м (→‎str_find: "не рекомендуется" — и не надо)
 
(не показано 5 промежуточных версий этого же участника)
Строка 7: Строка 7:
|-
|-
|<code>error_category</code>:
|<code>error_category</code>:
|В случае возникновения ошибки определяет название категории, в которую помещается страница с сообщением об ошибке. По умолчанию помещается в [[Категория:Страницы с ошибками модуля String]].
|В случае возникновения ошибки определяет название категории, в которую помещается страница с сообщением об ошибке. По умолчанию помещается в [[:Категория:Страницы с ошибками модуля String]].
|-
|-
|<code>no_category</code>:
|<code>no_category</code>:
Строка 62: Строка 62:
Если введённые индексы по модулю больше длины целевой строки, то выводится сообщение об ошибке.
Если введённые индексы по модулю больше длины целевой строки, то выводится сообщение об ошибке.
== sublength ==
== sublength ==
С помощью этой функции реализован шаблон {{t|Str sub}}, она сохраняется для поддержания его работоспособности.
С помощью этой функции реализован шаблон [https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Str_sub Str sub] на Википедии. Он возвращает подстроку целевой строки, начинающуюся с указанного индекса и имеющую указанную длину.
 
== match ==
== match ==
Функция возвращает часть целевой строки, которая соответствует заданной строке.
Функция возвращает часть целевой строки, которая соответствует заданной строке.
; Использование
; Использование
: <code><nowiki>{{#invoke:</nowiki>String|match|''исходная_строка''|''заданная_строка''|''начальный_индекс''|''номер_совпадения''|''true{{\}}false''|''значение_если_нет_совпадений''}}</code>
: <code><nowiki>{{#invoke:</nowiki>String|match|''исходная_строка''|''заданная_строка''|''начальный_индекс''|''номер_совпадения''|''true\false''|''значение_если_нет_совпадений''}}</code>
: или
: или
: <code><nowiki>{{#invoke:</nowiki>String|match|s= ''исходная_строка'' |pattern= ''заданная_строка'' |start= ''начальный_индекс''|match= ''номер_совпадения''|plain= ''true{{\}}false'' |nomatch= ''значение_если_нет_совпадений'' }}</code>
: <code><nowiki>{{#invoke:</nowiki>String|match|s= ''исходная_строка'' |pattern= ''заданная_строка'' |start= ''начальный_индекс''|match= ''номер_совпадения''|plain= ''true\false'' |nomatch= ''значение_если_нет_совпадений'' }}</code>
; Параметры
; Параметры
{|
{|
|{{code|s}}:
|<code>s</code>:
|Целевая строка, часть которой необходимо найти.
|Целевая строка, часть которой необходимо найти.
|-
|-
|{{code|pattern}}:
|<code>pattern</code>:
|Строка, совпадение с которой необходимо найти в целевой строке.
|Строка, совпадение с которой необходимо найти в целевой строке.
|-
|-
|{{code|start}}:
|<code>start</code>:
|Порядковый номер символа, начиная с которого необходимо произвести поиск совпадения. По умолчанию — {{code|1}}. Если начиная с заданного символа совпадений не найдено, функция возвращает сообщение об ошибке.
|Порядковый номер символа, начиная с которого необходимо произвести поиск совпадения. По умолчанию — <code>1</code>. Если начиная с заданного символа совпадений не найдено, функция возвращает сообщение об ошибке.
|-
|-
|{{code|match}}:
|<code>match</code>:
|В некоторых случаях может оказаться несколько совпадений с заданной строкой в одной целевой строке. Параметр задает номер совпадения, которое необходимо вывести. Если параметру присвоено отрицательное значение, то оно распознается модулем как порядковый номер совпадения, отсчитываемый с конца строки. Другими словами, значение {{code|-1}} распознается модулем как порядковый номер последнего совпадения в строке. По умолчанию — 1.
|В некоторых случаях может оказаться несколько совпадений с заданной строкой в одной целевой строке. Параметр задает номер совпадения, которое необходимо вывести. Если параметру присвоено отрицательное значение, то оно распознается модулем как порядковый номер совпадения, отсчитываемый с конца строки. Другими словами, значение <code>-1</code> распознается модулем как порядковый номер последнего совпадения в строке. По умолчанию — 1.
|-
|-
|{{code|plain}}:
|<code>plain</code>:
|Если параметру присвоено значение {{code|true}}, функция воспринимает заданную строку как обычный текст, а не [[mw:Extension:Scribunto/Lua reference manual#Patterns|регулярное выражение]]. По умолчанию — {{code|false}}.
|Если параметру присвоено значение <code>true</code>, функция воспринимает заданную строку как обычный текст, а не [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru#Шаблоны регулярное выражение]. По умолчанию — <code>false</code>.
|-
|-
|{{code|nomatch}}:
|<code>nomatch</code>:
|Последовательность символов, выводимая строкой в случае отсутствия совпадений вместо сообщения об ошибке.
|Последовательность символов, выводимая строкой в случае отсутствия совпадений вместо сообщения об ошибке.
|}
|}
Если введённый индекс по модулю больше длины целевой строки или совпадений найдено меньше, чем число, заданное в параметре {{code|match}}, то выводится сообщение об ошибке.
Если введённый индекс по модулю больше длины целевой строки или совпадений найдено меньше, чем число, заданное в параметре <code>match</code>, то выводится сообщение об ошибке.
Если добавить параметр {{code|ignore_errors{{=}}true}}, то вместо любого из сообщений об ошибке будет возвращена пустая строка.
Если добавить параметр <code>ignore_errors=true</code>, то вместо любого из сообщений об ошибке будет возвращена пустая строка.
Подробнее о [[Регулярное выражение|регулярных выражениях]], используемых в [[Lua]], см. [[mw:Extension:Scribunto/Lua reference manual#Patterns|Руководство по метасимволам]].
Подробнее о регулярных выражениях, используемых в Lua, см. [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru#Шаблоны Руководство по метасимволам].
 
== pos ==
== pos ==
Функция возвращает один символ из целевой строки под заданным порядковым номером.
Функция возвращает один символ из целевой строки под заданным порядковым номером.
Строка 100: Строка 102:
; Параметры
; Параметры
{|
{|
|{{code|target}}:
|<code>target</code>:
|Строка, в которой производится поиск символа.
|Строка, в которой производится поиск символа.
|-
|-
|{{code|pos}}:
|<code>pos</code>:
|Порядковый номер возвращаемого символа
|Порядковый номер возвращаемого символа
|}
|}
Если параметру {{code|pos}} присвоено отрицательное значение, то оно распознается модулем как порядковый номер символа, отсчитываемый с конца строки. Другими словами, значение {{code|-1}} распознается модулем как порядковый номер последнего символа в строке.
Если параметру <code>pos</code> присвоено отрицательное значение, то оно распознается модулем как порядковый номер символа, отсчитываемый с конца строки. Другими словами, значение <code>-1</code> распознается модулем как порядковый номер последнего символа в строке.
Если заданный порядковый номер равен 0 или больше длины строки, функция возвращает сообщение об ошибке.
Если заданный порядковый номер равен 0 или больше длины строки, функция возвращает сообщение об ошибке.
== str_find ==
 
Эта фунция предназначена для поддержания функционирования шаблона {{t|str find}}. Она сохраняется для того, чтобы поддерживать существующие шаблоны, но она '''крайне не рекомендуется''' для использования в новых шаблонах. Рекомендуется вместо неё использовать функцию {{code|find}}.
Возвращает порядковый номер символа, начиная с которого целевая строка, заданная параметром {{code|source}} совпадает со строкой в параметре {{code|target}}. Функция возвращает <code>−1</code>, если совпадений между строками не найдено.
'''Важно''': Если в параметре {{code|target}} не задана строка, либо отсутствует сам параметр, функция возвращает <code>1</code>, что, как правило, является полной неожиданностью для пользователей.
== find ==
== find ==
Функция позволяет выполнить поиск целевой строки в другой строке.
Функция позволяет выполнить поиск целевой строки в другой строке.
; Использование
; Использование
: <code><nowiki>{{#invoke:</nowiki>String|find|''исходная_строка''|''целевая_строка''|''начальный_индекс''|''true{{\}}false''}}</code>
: <code><nowiki>{{#invoke:</nowiki>String|find|''исходная_строка''|''целевая_строка''|''начальный_индекс''|''true\false''}}</code>
: или
: или
: <code><nowiki>{{#invoke:</nowiki>String|find|source= ''исходная_строка'' |target= ''целевая_строка'' |start= ''начальный_индекс''|plain= ''true{{\}}false'' }}</code>
: <code><nowiki>{{#invoke:</nowiki>String|find|source= ''исходная_строка'' |target= ''целевая_строка'' |start= ''начальный_индекс''|plain= ''true\false'' }}</code>
; Параметры
; Параметры
{|
{|
|{{code|source}}:
|<code>source</code>:
|Строка, в которой ведется поиск целевой строки.
|Строка, в которой ведется поиск целевой строки.
|-
|-
|{{code|target}}:
|<code>target</code>:
|Целевая строка, которая ищется в другой строке.
|Целевая строка, которая ищется в другой строке.
|-
|-
|{{code|start}}:
|<code>start</code>:
|Порядковый номер символа, начиная с которого ведется поиск совпадений. Значение по умолчанию — 1.
|Порядковый номер символа, начиная с которого ведется поиск совпадений. Значение по умолчанию — 1.
|-
|-
|{{code|plain}}:
|<code>plain</code>:
|Если параметру присвоено значение {{code|true}}, функция воспринимает заданную строку как обычный текст, а не [[mw:Extension:Scribunto/Lua reference manual#Patterns|регулярное выражение]]. По умолчанию — {{code|true}}.
|Если параметру присвоено значение <code>true</code, функция воспринимает заданную строку как обычный текст, а не [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru#Шаблоны регулярное выражение]. По умолчанию — <code>true</code>.
|}
|}
Функция возвращает значение, большее либо равное значению параметра {{code|start}}. Если совпадений не найдено, функция возвращает <code>0</code>, если одна из строк пустая или не задана, функция также возвращает <code>0</code>.
Функция возвращает значение, большее либо равное значению параметра <code>start</code>. Если совпадений не найдено, функция возвращает <code>0</code>, если одна из строк пустая или не задана, функция также возвращает <code>0</code>.
== replace ==
== replace ==
Функция позволяет заменить целевую строку в другой строке.
Функция позволяет заменить целевую строку в другой строке.
; Использование
; Использование
: <code><nowiki>{{#invoke:</nowiki>String|replace|''исходная_строка''|''целевая_строка''|''заменяющая_строка''|''количество_замен''|''true{{\}}false''}}</code>
: <code><nowiki>{{#invoke:</nowiki>String|replace|''исходная_строка''|''целевая_строка''|''заменяющая_строка''|''количество_замен''|''true\false''}}</code>
: или
: или
: <code><nowiki>{{#invoke:</nowiki>String|replace|source= ''исходная_строка'' |pattern= ''целевая_строка''|replace= ''заменяющая_строка'' |count= ''количество_замен'' |plain= ''true{{\}}false'' }}</code>
: <code><nowiki>{{#invoke:</nowiki>String|replace|source= ''исходная_строка'' |pattern= ''целевая_строка''|replace= ''заменяющая_строка'' |count= ''количество_замен'' |plain= ''true\false'' }}</code>
; Параметры
; Параметры
{|сlass="simple"
{|сlass="simple"
|{{code|source}}:
|<code>source</code>:
|Строка, в которой ведется поиск.
|Строка, в которой ведется поиск.
|-
|-
|{{code|pattern}}:
|<code>pattern</code>:
|Строка, которая ищется в исходной строке.
|Строка, которая ищется в исходной строке.
|-
|-
|{{code|replace}}:
|<code>replace</code>:
|Строка, заменяющая целевую.
|Строка, заменяющая целевую.
|-
|-
|{{code|count}}:
|<code>count</code>:
|Количество заменяемых совпадений; по умолчанию — все.
|Количество заменяемых совпадений; по умолчанию — все.
|-
|-
|{{code|plain}}:
|<code>plain</code>:
|Если параметру присвоено значение {{code|true}}, функция воспринимает заданную строку как обычный текст, а не [[mw:Extension:Scribunto/Lua reference manual#Patterns|регулярное выражение]]. По умолчанию — {{code|true}}.
|Если параметру присвоено значение <code>true</code>, функция воспринимает заданную строку как обычный текст, а не [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru#Шаблоны регулярное выражение]. По умолчанию — <code>true</code>.
|}
|}
== rep ==
== rep ==
Строка 162: Строка 161:
; Параметры
; Параметры
{|
{|
|{{code|source}}:
|<code>source</code>:
|Строка, которую необходимо повторить ''n'' раз.
|Строка, которую необходимо повторить ''n'' раз.
|-
|-
|{{code|count}}:
|<code>count</code>:
|Количество повторов.
|Количество повторов.
|}
|}
; Пример
; Пример
<code><nowiki>{{#invoke:String|rep|привет!|3}}</nowiki></code> → {{#invoke:String|rep|привет!|3}}
<code><nowiki>{{#invoke:String|rep|привет!|3}}</nowiki></code> → {{#invoke:String|rep|привет!|3}}

Текущая версия от 11:43, 3 июля 2024

Этот модуль предназначен для обеспечения доступа к основным строковым функциям. Большая часть функций, имеющихся в модуле, может быть вызвана именованными, неименованными параметрами или обоими вариантами. Если используются именованные параметры, движок Mediawiki автоматически удаляет любые начальные или конечные пробелы из параметра. В зависимости от предполагаемого использования может быть предпочтительным либо сохранение, либо удаление таких пробелов.

Глобальные параметры[править]

ignore_errors: Если параметру присвоено значение true или 1, вместо любого сообщения об ошибке выводится пустая строка.
error_category: В случае возникновения ошибки определяет название категории, в которую помещается страница с сообщением об ошибке. По умолчанию помещается в Категория:Страницы с ошибками модуля String.
no_category: Если параметру присвоено значение true или 1, то в случае сообщения об ошибке страница не будет помещена в соответствующую категорию.

subcount[править]

Функция возвращает количество подстрок внутри строки.

Использование
{{#invoke:String|subcount|исходная_строка|подстрока|true\false}}
или
{{#invoke:String|subcount|s=исходная_строка|pattern=подстрока|plain=true\false}}
Параметры
s: Целевая строка, часть которой необходимо найти.
pattern: Строка, совпадение с которой необходимо найти в целевой строке.
plain: Если параметру присвоено значение false, функция воспринимает заданную строку как регулярное выражение. По умолчанию — true.

len[править]

Функция возвращает длину целевой строки.

Использование
{{#invoke:String|len|целевая_строка}}
или
{{#invoke:String|len|s= целевая_строка }}
Параметры
s: Строка, длину которой необходимо найти.

sub[править]

Функция возвращает часть целевой стоки между указанными индексами (порядковыми номерами символов в целевой строке)

Использование
{{#invoke:String|sub|целевая_строка|начальный_индекс|конечный_индекс}}
или
{{#invoke:String|sub|s= целевая_строка |i= начальный_индекс |j= конечный_индекс }}
Параметры
s: Строка, часть которой необходимо вывести.
i: Порядковый номер символа, начиная с которого необходимо вывести строку. Значение по умолчанию — 1.
j: Порядковый номер символа, до которого необходимо вывести строку. Значение по умолчанию — порядковый номер последнего символа.

Первому символу строки присваивается индекс 1. Если параметрам i или j присвоено отрицательное значение, то оно распознается модулем как порядковый номер символа, отсчитываемый с конца строки. Другими словами, значение -1 распознается модулем как порядковый номер последнего символа в строке. Если введённые индексы по модулю больше длины целевой строки, то выводится сообщение об ошибке.

sublength[править]

С помощью этой функции реализован шаблон Str sub на Википедии. Он возвращает подстроку целевой строки, начинающуюся с указанного индекса и имеющую указанную длину.

match[править]

Функция возвращает часть целевой строки, которая соответствует заданной строке.

Использование
{{#invoke:String|match|исходная_строка|заданная_строка|начальный_индекс|номер_совпадения|true\false|значение_если_нет_совпадений}}
или
{{#invoke:String|match|s= исходная_строка |pattern= заданная_строка |start= начальный_индекс|match= номер_совпадения|plain= true\false |nomatch= значение_если_нет_совпадений }}
Параметры
s: Целевая строка, часть которой необходимо найти.
pattern: Строка, совпадение с которой необходимо найти в целевой строке.
start: Порядковый номер символа, начиная с которого необходимо произвести поиск совпадения. По умолчанию — 1. Если начиная с заданного символа совпадений не найдено, функция возвращает сообщение об ошибке.
match: В некоторых случаях может оказаться несколько совпадений с заданной строкой в одной целевой строке. Параметр задает номер совпадения, которое необходимо вывести. Если параметру присвоено отрицательное значение, то оно распознается модулем как порядковый номер совпадения, отсчитываемый с конца строки. Другими словами, значение -1 распознается модулем как порядковый номер последнего совпадения в строке. По умолчанию — 1.
plain: Если параметру присвоено значение true, функция воспринимает заданную строку как обычный текст, а не регулярное выражение. По умолчанию — false.
nomatch: Последовательность символов, выводимая строкой в случае отсутствия совпадений вместо сообщения об ошибке.

Если введённый индекс по модулю больше длины целевой строки или совпадений найдено меньше, чем число, заданное в параметре match, то выводится сообщение об ошибке. Если добавить параметр ignore_errors=true, то вместо любого из сообщений об ошибке будет возвращена пустая строка. Подробнее о регулярных выражениях, используемых в Lua, см. Руководство по метасимволам.

pos[править]

Функция возвращает один символ из целевой строки под заданным порядковым номером.

Использование
{{#invoke:String|pos|целевая_строка|значение_индекса}}
или
{{#invoke:String|pos|target= целевая_строка |pos= значение_индекса }}
Параметры
target: Строка, в которой производится поиск символа.
pos: Порядковый номер возвращаемого символа

Если параметру pos присвоено отрицательное значение, то оно распознается модулем как порядковый номер символа, отсчитываемый с конца строки. Другими словами, значение -1 распознается модулем как порядковый номер последнего символа в строке. Если заданный порядковый номер равен 0 или больше длины строки, функция возвращает сообщение об ошибке.

find[править]

Функция позволяет выполнить поиск целевой строки в другой строке.

Использование
{{#invoke:String|find|исходная_строка|целевая_строка|начальный_индекс|true\false}}
или
{{#invoke:String|find|source= исходная_строка |target= целевая_строка |start= начальный_индекс|plain= true\false }}
Параметры
source: Строка, в которой ведется поиск целевой строки.
target: Целевая строка, которая ищется в другой строке.
start: Порядковый номер символа, начиная с которого ведется поиск совпадений. Значение по умолчанию — 1.
plain: Если параметру присвоено значение true</code, функция воспринимает заданную строку как обычный текст, а не регулярное выражение. По умолчанию — true.

Функция возвращает значение, большее либо равное значению параметра start. Если совпадений не найдено, функция возвращает 0, если одна из строк пустая или не задана, функция также возвращает 0.

replace[править]

Функция позволяет заменить целевую строку в другой строке.

Использование
{{#invoke:String|replace|исходная_строка|целевая_строка|заменяющая_строка|количество_замен|true\false}}
или
{{#invoke:String|replace|source= исходная_строка |pattern= целевая_строка|replace= заменяющая_строка |count= количество_замен |plain= true\false }}
Параметры
source: Строка, в которой ведется поиск.
pattern: Строка, которая ищется в исходной строке.
replace: Строка, заменяющая целевую.
count: Количество заменяемых совпадений; по умолчанию — все.
plain: Если параметру присвоено значение true, функция воспринимает заданную строку как обычный текст, а не регулярное выражение. По умолчанию — true.

rep[править]

Функция возвращает строку, состоящую из повторений n раз исходной строки.

Использование
{{#invoke:String|rep|строка|количество_повторов}}
Параметры
source: Строка, которую необходимо повторить n раз.
count: Количество повторов.
Пример

{{#invoke:String|rep|привет!|3}} → привет!привет!привет!