- Справка Scilab
- Строки
- ascii
- asciimat
- blanks
- char
- convstr
- emptystr
- eval
- evstr
- grep
- isalphanum
- isascii
- isdigit
- isletter
- isnum
- justify
- length
- part
- regexp
- sci2exp
- strcat
- strchr
- strcmp
- strcmpi
- strcspn
- strindex
- string
- strings
- stripblanks
- strncpy
- strrchr
- strrev
- strsplit
- strspn
- strstr
- strsubst
- strtod
- strtok
- tokenpos
- tokens
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
strindex
поиск положения символьной строки в другой строке
Последовательность вызова
ind = strindex(haystack, needle, [flag]) [ind, which] = strindex(haystack, needle, [flag])
Аргументы
- haystack
символьная строка. Строка, в которой ищутся совпадения с
needle
.- needle
символьная строка или вектор символьных строк. Строка (строки) которая ищется в
haystack
.- ind
вектор индексов.
- which
вектор индексов.
- flag
строка (
"r"
для регулярного выражения).
Описание
Функция strindex
ищет индексы, где найдена
needle(i)
в haystack
.
Для каждого k
существует такая
i
, что part(haystack,ind(k)+(0:length(needle(i))-1))
является той же самой строкой, что и needle(i)
.
Если указан аргумент which
, то он содержит эти
i
. Когда используется третий параметр
"r"
, то needle
должна быть
строкой регулярного выражения, и тогда
strindex
будет сравнивать её с
haystack
по правилам регулярного выражения.
strindex
без аргумента регулярного выражения
основывается на алгоритме Кнута-Морриса-Пратта [Knuth-Morris-Pratt].
Этот алгоритм более мощный, чем тот, который использовался в Scilab 4.x. В некоторых частных случаях результат может быть различным.
Пример:
// Scilab 5.x
-->[k,w]=strindex('aab',['a','ab'])
w = 1. 1. 2. k = 1. 2. 2.
// Scilab 4.x
-->[k,w]=strindex('aab',['a','ab'])
w = 1. 1. k = 1. 2.
Правила регулярного выражения сходны с языком Perl. Для быстрого старта см.http://perldoc.perl.org/perlrequick.html. Для более глубокого изучения см. http://perldoc.perl.org/perlretut.html, а для справки см. http://perldoc.perl.org/perlre.html.
Примеры
k=strindex('SCI/demos/scicos','/') k=strindex('SCI/demos/scicos','SCI/') k=strindex('SCI/demos/scicos','!') k=strindex('aaaaa','aa') k=strindex('SCI/demos/scicos',['SCI','sci']) [k,w]=strindex('1+3*abc/2.33',['+','-','*','/']) k=strindex('2' ,'/2(]*)?$\1/' ,'r')
Смотрите также
Report an issue | ||
<< strcspn | Строки | string >> |