PosEx
Перейти к навигации
Перейти к поиску
Описание
Возврат позиции подстроки в строке.
Синтаксис
set <имя_переменной> PosEx(<подстрока> <строка> [стартовая_позиция_поиска])
<имя_переменной> - имя переменной в которую будет помещён результат.
<подстрока> - искомая строка.
<строка> - строка, в которой происходит поиск.
[стартовая_позиция_поиска] - порядковый номер символа с которого начнется поиск (по умолчанию 1). Необязательный параметр.
Если искомая подстрока не найдена, то результат будет равен 0
Примеры
// Пример 1 set $s абвгдеёж set #n posex(в $s) // #n = 3 set #n posex(я $s) // #n = 0
// Пример 2 set #m posex(ин машина) // #m = 4
// Пример 3 set #m1 posex(а машина) // #m1 = 2 set #m2 posex(а машина 3) // #m2 = 6
// Пример 4 set $a "мама мыла раму" set $b "мыла" set #pos PosEx($b $a 2) // #pos = 6. Слово Offset не пишите - оно игнорируется вместе с тем, что после него msg #pos
// Пример 5 set $s Недавно Вася съел 15 яблок, обжора... // фраза в которой будем искать число яблок set #еще_яблоки 3 // никто не знал об этих яблоках... set $ws съел // левое от числа слово set #wlen size ( $ws ) // длина левого_слова set $w2 яблок // правое от числа слово set #n1 posex($ws $s) // позиция в строке с которой начинается левое_слово set #n2 posex($w2 $s) // позиция в строке с которой начинается правое_слово if ( #n1 > 0) and ( #n2 > 0 ) // если оба слова были найдены, то будем доставать число... set #pos #n1 + #wlen // позиция в строке с которой начинается число set #len #n2 - #pos // длина числа в символах set $res copy($s #pos #len) // получаем из строки нужную нам подстроку с числом яблок set #всего_яблок $res + #еще_яблоки // считаем сколько всего слопано msg Дятел: А ВАСЯ СЪЕЛ #всего_яблок ЯБЛОК!!! // бдительность- залог успеха else msg Яблок никто не ел! // неправильные исходные данные часто спасают преступников ) end_if end_script
Смотрите также
Get word
Get number
Copy
Delete
Insert
История развития
2.23
Добавил функции для работы со строками:
'PosEx(SubStr String [Offset=1])'
Возвращает позицию подстроки <SubStr> в строке <String>, начиная поиск с позиции [Offset] (по умолчанию Offset=1).