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