<< evstr Строки isalphanum >>

Scilab Help >> Строки > 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')

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


Report an issue
<< evstr Строки isalphanum >>