ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

strsplit

指定した区切り記号で文字列を分割

構文

  • C = strsplit(str)
  • C = strsplit(str,delimiter)
  • C = strsplit(str,delimiter,Name,Value)
  • [C,matches] = strsplit(___)

説明

C = strsplit(str) は文字列のセル配列 C 内の空白で、文字列 str を分割します。空白文字は、{' ','\f','\n','\r','\t','\v'} セットの任意のシーケンスと同等です。

C = strsplit(str,delimiter) は、delimiter によって指定された区切り記号で str を分割します。

C = strsplit(str,delimiter,Name,Value) は、1 つまたは複数の名前と値のペアの引数を使用して追加の区切り記号オプションを使用します。

[C,matches] = strsplit(___) は、前の構文の任意の入力引数を使って、文字列のセル配列 matches を追加で返します。matches には、strsplitstr を分割する区切り記号のすべての出現箇所が含まれます。

すべて展開する

空白で文字列を分割

str = 'The rain in Spain.';
C = strsplit(str)
C = 

    'The'    'rain'    'in'    'Spain.'

C は 4 つの文字列を含んでいるセル配列です。

特定の区切り記号で値の文字列を分割

コンマで区切られた値の文字列を分割します。

data = '1.21, 1.985, 1.955, 2.015, 1.885';
C = strsplit(data,', ')
C = 

    '1.21'    '1.985'    '1.955'    '2.015'    '1.885'

値の文字列 data を分割します。この文字列には、テキストの両側に任意の数の空白が存在する単位 m/s が含まれています。正規表現 \s* は、0 回以上発生する任意の空白文字と一致します。

data = '1.21m/s1.985m/s 1.955 m/s2.015 m/s 1.885m/s';
[C,matches] = strsplit(data,'\s*m/s\s*',...
    'DelimiterType','RegularExpression')
C = 

    '1.21'    '1.985'    '1.955'    '2.015'    '1.885'    ''


matches = 

    'm/s'    'm/s '    ' m/s'    ' m/s '    'm/s'

この場合は、C の最後の文字列は空です。この空の文字列は、最後に一致した区切り記号に続く文字列です。

ファイル区切りでパス文字列を分割

myPath = 'C:\work\matlab';
C = strsplit(myPath,'\')
C = 

    'C:'    'work'    'matlab'

複数の区切り記号を使ってテキスト文字列を分割

複数の区切り記号を 1 つとして扱って、' ''ain' で文字列を分割します。文字列のセル配列に含まれる複数の区切り記号を指定します。

str = 'The rain in Spain stays mainly in the plain.';
[C,matches] = strsplit(str,{' ','ain'},'CollapseDelimiters',true)
C = 

    'The'    'r'    'in'    'Sp'    'stays'    'm'    'ly'    'in'    'the'    'pl'    '.'


matches = 

    ' '    'ain '    ' '    'ain '    ' '    'ain'    ' '    ' '    ' '    'ain'

正規表現を使用し、複数の区切り記号を個別に扱って、空白と 'ain' で同じ文字列を分割します。

[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',...
    false, 'DelimiterType','RegularExpression')
C = 

    'The'    'r'    ''    'in'    'Sp'    ''    'stays'    'm'    'ly'    'in'    'the'    'pl'    '.'


matches = 

    ' '    'ain'    ' '    ' '    'ain'    ' '    ' '    'ain'    ' '    ' '    ' '    'ain'

この場合、strsplit は 2 つの区切り記号を個別に扱うため、連続で一致する区切り記号間の出力 C に空の文字列が表示されます。

複数のオーバーラップする区切り記号を使ってテキストを分割

文字列 ', ' および ', and ' でテキストを分割します。

str = 'bacon, lettuce, and tomato';
[C,matches] = strsplit(str,{', ',', and '})
C = 

    'bacon'    'lettuce'    'and tomato'


matches = 

    ', '    ', '

このコマンドでは ', ' が最初に表示され、', and '', ' が含まれているため、関数 strsplit は最初の区切り記号で str を分割し、2 番目の区切り記号には進みません。

区切り記号の順番を逆にすると、', and ' が優先されます。

str = 'bacon, lettuce, and tomato';
[C,matches] = strsplit(str,{', and ',', '})
C = 

    'bacon'    'lettuce'    'tomato'


matches = 

    ', '    ', and '

入力引数

すべて展開する

str - 入力テキスト文字列

入力テキスト。文字列として指定します。

データ型:char

delimiter - 区切り記号文字列 | 1 行 n 列の文字列のセル配列

区切り記号。単一の文字列または 1 行 n 列の文字列のセル配列として指定します。delimiter で指定した文字列は、出力 C の文字列部分には表示されません。

文字列のセル配列に含まれる複数の区切り記号を指定します。セル配列内の各要素は、1 行に文字列を 1 つ含んでいなければなりません。関数 strsplit は、セル配列に表示される順番に delimiter の要素で str を分割します。

delimiter には、以下のエスケープ シーケンスを含めることができます。

\\

バックスラッシュ

\0

ヌル

\a

アラーム

\b

バックスペース

\f

改ページ

\n

改行

\r

キャリッジ リターン

\t

水平タブ

\v

垂直タブ

例: ','

例: {'-',','}

データ型:char | cell

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: 'DelimiterType','RegularExpression'strsplitdelimiter を正規表現として扱うように指示します。

'CollapseDelimiters' - 多重区切り記号の取り扱い1 (true) (既定の設定) | 0 (false)

多重区切り記号の取り扱いは、'CollapseDelimiters'true または false で構成されるコンマ区切りのペアとして指定します。true の場合、str 内の連続した区切り記号は 1 つの区切り記号として扱われます。false の場合、連続した区切り記号は個別の区切り記号として扱われるため、一致する区切り記号間では空の文字列 '' 要素になります。

例: 'CollapseDelimiters',true

'DelimiterType' - 区切り記号の種類'Simple' (既定の設定) | 'RegularExpression'

区切り記号の種類。'DelimiterType' と次の文字列のいずれかで構成されるコンマ区切りペアとして指定します。

'Simple'エスケープ シーケンスを除き、strsplitdelimiter をリテラル文字列として扱います。
'RegularExpression'strsplitdelimiter を正規表現として扱います。

いずれの場合も、delimiter にはエスケープ シーケンスを含めることができます。

出力引数

すべて展開する

C - 元の文字列の一部文字列のセル配列

元の文字列の一部。文字列のセル配列として返されます。C に含まれる要素の数は必ず、matches に含まれる要素の数よりも 1 つ多くなります。したがって、元の文字列 str が区切り記号で終了している場合、C の最後のセルには空の文字列が含まれています。

matches - 指定された区切り記号 文字列のセル配列

指定された区切り記号。文字列のセル配列として返されます。matches に含まれる要素の数は必ず、出力 C に含まれる要素より 1 つ少なくなります。

参考

| |

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