Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - 日本語


grep

文字列のベクトルの中で指定した文字列に一致するかどうかを調べる

呼び出し手順

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

引数

haystack

文字列の行ベクトル.

needle

文字列または文字列の行ベクトル. haystackの中で文字列を探します.

row

インデックスのベクトル: 一致するものが見つかった行, または一致するものが見つからなかった場合は空の行列.

which

インデックスのベクトル: 見つかったneedle文字列のインデックスまたは 一致するものがなかった場合は空の行列.

"regexp" | "r" flag

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

説明

haystackの各エントリについて, grepは少なくとも needleの中の一つの文字列が 部分文字列に一致するかどうかを探します. 最低でも一致するものが一つある haystackのエントリのインデックスが 出力引数rowに返されます. オプションの出力引数whichは, needleの最初に見つかった文字列のインデックスを 指定します.

3番目のパラメータにflag="r" を指定した場合, needleに正規表現文字列を指定できます. この場合, grepneedle を正規表現として使用し,正規表現の規則に基づいて haystackとこの文字列を比較します. 正規表現に関する詳細については関数regexp を参照ください.

例 #1

以下の例では,txt変数に保存されている テキスト中で,1つまたは2つの文字列を探します.

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

例 #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 — 論理値ベクトルまたは行列のtrue要素の添え字を見つける
  • 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:
Tue Oct 24 14:36:20 CEST 2023