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, which] = grep(haystack, needle )
[row, which] = grep(haystack, needle, "regexp" )

Аргументы

haystack

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

needle

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

row

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

which

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

флаг "regexp" | "r"

одиночный символ: тогда элементы needle используются как регулярные выражения.

Описание

Для каждого элемента 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 — поиск подстроки, соответствующей строке регулярного выражения
  • find — даёт индексы элементов с ненулевым значением или значением %T
  • vectorfind — ищет расположение вектора (отмеченный символом групповой подстановки) в матрице или гиперматрице
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:39:58 CET 2022