API InStr - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
InStr
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Ищет первое вхождение подстроки с заданной позиции.
Точный синтаксис
InStr(value:String, search:String) -> Integer
InStr(start:Integer, value:String, search:String) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
value— Строка, в которой выполняется поиск.search— Искомый текст; регистр учитывается.start— Только в трёхаргументной форме — первый аргумент, позиция от 1 включительно. Значения <=1 начинают с первого символа. В двухаргументной форме поиск начинается с 1.
Возвращает
Integer — позиция найденной подстроки от 1; 0 означает отсутствие совпадения или start за концом. Пустой search совпадает в стартовой позиции, в том числе после последнего символа при start=Len(value)+1.
Поведение
- Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
- Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.
Примеры
Пример 1. Найти разделитель
# Найти разделитель
#
# Ищет первое вхождение подстроки с заданной позиции.
#
# Integer — позиция найденной подстроки от 1; 0 означает отсутствие совпадения или start за
# концом. Пустой search совпадает в стартовой позиции, в том числе после последнего символа при
# start=Len(value)+1.
SUB Main()
# value="ore:iron", search=":"; поиск с начала.
# Ожидаемый результат: 4. В result сохраняется результат выражения; Print только показывает его.
VAR result = InStr('ore:iron', ':')
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- value="ore:iron", search=":"; поиск с начала.
- Ожидаемый результат: 4. В result сохраняется результат выражения; Print только показывает его.
Пример 2. Пропустить первое совпадение
# Пропустить первое совпадение
#
# Ищет первое вхождение подстроки с заданной позиции.
#
# Integer — позиция найденной подстроки от 1; 0 означает отсутствие совпадения или start за
# концом. Пустой search совпадает в стартовой позиции, в том числе после последнего символа при
# start=Len(value)+1.
SUB Main()
# start=3 — поиск начинается с третьей позиции включительно.
# Ожидаемый результат: 3. В result сохраняется результат выражения; Print только показывает его.
VAR result = InStr(3, 'ababa', 'a')
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- start=3 — поиск начинается с третьей позиции включительно.
- Ожидаемый результат: 3. В result сохраняется результат выражения; Print только показывает его.
Пример 3. Учесть регистр
# Учесть регистр
#
# Ищет первое вхождение подстроки с заданной позиции.
#
# Integer — позиция найденной подстроки от 1; 0 означает отсутствие совпадения или start за
# концом. Пустой search совпадает в стартовой позиции, в том числе после последнего символа при
# start=Len(value)+1.
SUB Main()
# Поиск сравнивает текст ordinal, без смены регистра.
# Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.
VAR result = InStr('Iron', 'iron')
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- Поиск сравнивает текст ordinal, без смены регистра.
- Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.