Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.1 - English

Change language to:
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 Help >> Strings > grep

grep

find matches of a string in a vector of strings

Syntax

[row, which] = grep(haystack, needle )
[row, which] = grep(haystack, needle, "regexp" )

Arguments

haystack

a row vector of character strings.

needle

a character string or a row vector of character strings. The string(s) to search in haystack.

row

a vector of indices: row where a match has been found or an empty matrix if no match found.

which

a vector of indices: index of needle string found or an empty matrix if no match found.

"regexp" | "r" flag

single character: Then needle elements are used as regular expressions.

Description

For each entry of haystack, grep searches if at least a string in needle which matches a substring. The haystack entries index where at least a match has been found are returned in the row output argument. The optional which output argument gives the index of first string of needle found.

When using the third parameter flag="r", the needle is expected to be a regular expression string. In this case, grep uses the needle as a regular expression and compares it against haystack according to the regular expressions rules. See the regexp function for details about regular expressions.

Examples

Example #1

In the following example, we search one or two strings in a text, which is stored in the txt variable.

txt=['find matches of a string in a vector of strings'
     'search position of a character string in another string'
     'Compare Strings'];

grep(txt,'strings')
grep(txt,['strings' 'Strings'])

[r,w]=grep(txt,['strings' 'Strings'])

Example #2

In the following example, we perform regexp searches.

str = ["hat";"cat";"hhat";"chat";"hcat";"ccchat";"at";"dog"]

grep(str,'/[hc]+at/','r')
grep(str,'/[hc]?at/','r')
grep(str,'/cat|dog/','r')

See also

  • strindex — search position of a character string in another string
  • regexp — find a substring that matches the regular expression string
  • find — gives the indices of %T or non-zero elements
  • vectorfind — locates occurences of a (wildcarded) vector in a matrix or hypermatrix
Report an issue
<< evstr Strings isalphanum >>

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:
Mon Jan 03 14:23:29 CET 2022