Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.0 - Русский

Change language to:
English - Français - 日本語 - Português -

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Справка Scilab >> Строки > strindex

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')

Смотрите также

  • string — преобразование в строку
  • strings — объект Scilab'а, символьные строки
  • regexp — поиск подстроки, соответствующей строке регулярного выражения
  • strsubst — замена одной символьной строки другой
Report an issue
<< strcspn Строки string >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:54:58 CET 2020