Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語
Справка Scilab >> Строки > grep

grep

поиск соответствий строки в векторе строк

Синтаксис

row = grep(haystack, needle )
[row, which] = grep(haystack, needle )
row = grep(haystack, needle, [flag])
[row, which] = grep(haystack, needle, [flag])

Аргументы

haystack

вектор-строка символьных строк.

needle

символьная строка или вектор-строка символьных строк. Строка (строки), которая ищется в haystack.

row

вектор индексов: строка, где было найдено соответствие или пустая матрица, если соответствие не найдено.

which

вектор индексов: индекс найденной строки needle или пустая матрица, если соответствия не найдено.

flag

символ ("r" для регулярного выражения).

Описание

Для каждого элемента haystack функция grep ищет соответствие подстроки со строкой в needle. Индекс элементов haystack, где было найдено соответствие, возвращается в выходном аргументе row. Необязательный выходной аргумент which даёт индекс первого найденного строкового значения в needle.

Когда используется третий параметр flag="r", то ожидается, что needle будет строкой регулярного выражения. В этом случае grep использует needle в качестве регулярного выражения и сравнивает его с haystack в соответствии с правилами регулярного выражения. См. подробности по регулярным выражениям в функции regexp.

Пример №1

В следующем примере мы ищем одну или две строки в тексте, который хранится в переменной txt.

txt=['поиск соответствий строк в векторе строк'
     'поиск положения символьной строки в другой строке'
     'Сравнение Строк'];
grep(txt,'строк')
grep(txt,['строк' 'Строк'])
[r,w]=grep(txt,['строк' 'Строк'])

Пример №2

В следующем примере выполняется поиск с помощью регулярных выражений.

str = ["hat";"cat";"hhat";"chat";"hcat";"ccchat";"at";"dog"]
grep(str,'/[hc]+at/','r')
grep(str,'/[hc]?at/','r')
grep(str,'/cat|dog/','r')

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

  • strindex — поиск положения символьной строки в другой строке
  • regexp — поиск подстроки, соответствующей строке регулярного выражения
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:13:26 CET 2017