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
に正規表現文字列を指定できます.
この場合, grep
はneedle
を正規表現として使用し,正規表現の規則に基づいて
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 >> |