ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

strfind

文字列内の文字の検出

構文

  • k = strfind(str,pattern)
  • k = strfind(str,pattern,'ForceCellOutput',cellOutput)

説明

k = strfind(str,pattern) は、str 内で pattern の出現を検索します。出力 k は、str における pattern の各出現の開始インデックスを示します。pattern が見つからない場合、strfind は空の配列 [] を返します。関数 strfind は大文字小文字を区別して検索を実行します。

  • str が文字ベクトルの場合、strfinddouble 型のベクトルを返します。

  • str が文字ベクトルのセル配列の場合、strfinddouble 型のベクトルのセル配列を返します。

k = strfind(str,pattern,'ForceCellOutput',cellOutput) は、cellOutput が true の場合、str が文字ベクトルでも、強制的に strfindk をセル配列として返します。

すべて折りたたむ

文字ベクトル内で、パターンの出現箇所の開始インデックスを求めます。

まず、文字ベクトルを作成します。

str = 'Find the starting indices of a pattern in a character vector';

パターン in を検索します。

k = strfind(str,'in')
k =

     2    15    19    40

str には、このパターンのインスタンスが 4 つあります。

パターン In を検索します。

k = strfind(str,'In')
k =

     []

strfind では大文字小文字が区別されるため、このパターンは見つかりません。k は空の配列になります。

str 内の空白を検索します。

k = strfind(str,' ')
k =

     5     9    18    26    29    31    39    42    44    54

str には、10 箇所の空白があります。

文字ベクトルのセル配列内で、パターンの出現箇所の開始インデックスを求めます。

文字ベクトルのセル配列を作成します。

str = {'How much wood would a woodchuck chuck';
       'if a woodchuck could chuck wood?'};

str 内でパターン wood を検索します。

idx = strfind(str,'wood')
idx = 

    [1x2 double]
    [1x2 double]

出力セル配列を調べてこのパターンのインスタンスを見つけます。

idx{:,:}
ans =

    10    23


ans =

     6    28

パターン wood は、1 番目の文字ベクトルのインデックス 10 と 23 に出現し、2 番目の文字ベクトルのインデックス 6 と 28 に出現します。

文字ベクトル内のパターンの出現箇所を検索します。strfind に、出現箇所のインデックスをセル配列で返すように強制します。次にインデックスを表示します。

文字ベクトルを作成し、パターン ain の出現箇所を検索します。

str = 'The rain in Spain.';
k = strfind(str,'ain','ForceCellOutput',true)
k = 

    [1x2 double]

strfind は、数値配列を含むスカラー セルを返します。このセルには、str におけるパターン ain の出現箇所のインデックスが含まれています。セル内の数値配列にアクセスするには、中かっこを使用します。

k{1}
ans =

     6    15

入力引数

すべて折りたたむ

検索対象のデータ。文字ベクトルまたは文字ベクトルのセル配列として指定します。

データ型: char | cell

検索パターン。文字ベクトルとして指定します。

データ型: char

出力をセル配列で返すことを強制するかどうかのインジケーター。falsetrue0 または 1 として指定します。

データ型: logical

出力引数

すべて折りたたむ

pattern の出現のインデックス。配列として返されます。pattern が見つからない場合、k は空の配列 [] となります。

  • str が文字ベクトルの場合、kpattern の各出現のインデックスを示す double のベクトルです。

  • str が文字ベクトルのセル配列の場合、k はセル配列です。str の文字ベクトルごとに、k の対応するセルに、pattern の各出現のインデックスを示す double のベクトルが格納されます。

詳細

すべて折りたたむ

ヒント

  • pattern が文字を含まない文字ベクトル ('') の場合、strfind は空の配列を返します。

R2006a より前に導入

この情報は役に立ちましたか?