strsplit
指定した区切り記号で string または文字ベクトルを分割
構文
説明
は、1 つ以上の名前と値のペアの引数を使用して追加の区切り記号オプションを指定します。たとえば、連続する区切り文字を個別の区切り記号として扱うには、C
= strsplit(str
,delimiter
,Name,Value
)'CollapseDelimiters',false
を指定できます。
例
空白で文字ベクトルを分割
str = 'The rain in Spain.';
C = strsplit(str)
C = 1x4 cell
{'The'} {'rain'} {'in'} {'Spain.'}
C
は 4 つの文字ベクトルを含む cell 配列です。
特定の区切り記号で値の文字ベクトルを分割
コンマ区切り値を格納した文字ベクトルを分割します。
data = '1.21, 1.985, 1.955, 2.015, 1.885'; C = strsplit(data,', ')
C = 1x5 cell
{'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 = 1x6 cell
{'1.21'} {'1.985'} {'1.955'} {'2.015'} {'1.885'} {0x0 char}
matches = 1x5 cell
{'m/s'} {'m/s '} {' m/s'} {' m/s '} {'m/s'}
この場合、C
の最後の文字ベクトルは空です。この空の文字ベクトルは、最後に一致した区切り記号の後に続きます。
ファイル区切りでパスを分割
myPath = 'C:\work\matlab'; C = strsplit(myPath,'\')
C = 1x3 cell
{'C:'} {'work'} {'matlab'}
複数の区切り記号で文字ベクトルを分割
複数の区切り記号を 1 つとして扱って、' '
と 'ain'
で文字ベクトルを分割します。文字ベクトルの cell 配列に複数の区切り記号を指定します。
str = 'The rain in Spain stays mainly in the plain.'; [C,matches] = strsplit(str,{' ','ain'},'CollapseDelimiters',true)
C = 1x11 cell
{'The'} {'r'} {'in'} {'Sp'} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1x10 cell
{' '} {'ain '} {' '} {'ain '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
正規表現を使用し、複数の区切り記号を個別に扱って、同じ文字ベクトルを空白と 'ain'
で分割します。
[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',... false, 'DelimiterType','RegularExpression')
C = 1x13 cell
{'The'} {'r'} {0x0 char} {'in'} {'Sp'} {0x0 char} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1x12 cell
{' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
この場合、strsplit
は 2 つの区切り記号を個別に扱うため、出力 C
の連続して一致する区切り記号の間に空の文字ベクトルが現れます。
複数のオーバーラップする区切り記号を使ってテキストを分割
文字ベクトル ', '
および ', and '
でテキストを分割します。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', ',', and '})
C = 1x3 cell
{'bacon'} {'lettuce'} {'and tomato'}
matches = 1x2 cell
{', '} {', '}
このコマンドでは ', '
が最初にリストされ、', and '
に ', '
が含まれているため、関数 strsplit
は最初の区切り記号で str
を分割し、2 番目の区切り記号には進みません。
区切り記号の順序を逆にすると、', and '
が優先されます。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', and ',', '})
C = 1x3 cell
{'bacon'} {'lettuce'} {'tomato'}
matches = 1x2 cell
{', '} {', and '}
入力引数
str
— 入力テキスト
文字ベクトル | string スカラー
入力テキスト。文字ベクトルまたは string スカラーとして指定します。
データ型: char
| string
delimiter
— 区切り記号
文字ベクトル | 1
行 n
列の文字ベクトルの cell 配列 | 1
行 n
列の string 配列
区切り記号。文字ベクトル、1
行 n
列の文字ベクトルの cell 配列、または 1
行 n
列の string 配列として指定します。delimiter
で指定されたテキストは、出力 C
に表示されません。
複数の区切り記号は、cell 配列または string 配列内に指定します。関数 strsplit
は str
を delimiter
の要素で分割します。delimiter
での区切り記号の出現順序が重要となるのは、複数の区切り記号の始まりが str
内の同じ文字に一致する場合のみです。そのような場合、strsplit
は delimiter
内の最初に一致する区切り記号で文字列を分割します。
delimiter
には、以下のエスケープ シーケンスを含めることができます。
| バックスラッシュ |
| ヌル |
| アラーム |
| バックスペース |
| フォーム フィード |
| 改行 |
| キャリッジ リターン |
| 水平タブ |
| 垂直タブ |
例: ','
例: {'-',','}
データ型: char
| cell
| string
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: 'DelimiterType','RegularExpression'
は strsplit
が delimiter
を正規表現として扱うように指示します。
CollapseDelimiters
— 複数の区切り記号の取り扱い
1 (true)
(既定値) | 0 (false)
複数の区切り記号の取り扱いは、'CollapseDelimiters'
と true
または false
で構成されるコンマ区切りのペアとして指定します。true
の場合、str
内の連続した区切り記号は 1 つの区切り記号として扱われます。false
の場合、連続した区切り記号は個別の区切り記号として扱われるため、一致する区切り記号の間は空の文字ベクトル ''
要素になります。
例: 'CollapseDelimiters',true
DelimiterType
— 区切り記号の種類
'Simple'
(既定値) | 'RegularExpression'
区切り記号の種類。'DelimiterType'
と次の文字ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。
'Simple' | strsplit は、エスケープ シーケンスを除く delimiter をリテラル テキストとして扱います。 |
'RegularExpression' | strsplit は delimiter を正規表現として扱います。 |
いずれの場合も、delimiter
にはエスケープ シーケンスを含めることができます。
出力引数
C
— 元のテキストの一部
文字ベクトルの cell 配列 | string 配列
元の文字ベクトルの一部。文字ベクトルの cell 配列または string 配列として返されます。C
の要素数は、常に matches
に含まれる要素数より 1 つ多くなります。したがって、str
が区切り記号で始まる場合、C
の最初の要素には文字が含まれません。str
が区切り記号で終わる場合、C
の最後のセルには文字が含まれません。
matches
— 指定された区切り記号
文字ベクトルの cell 配列 | string 配列
指定された区切り記号。文字ベクトルの cell 配列または string 配列として返されます。matches
の要素数は、常に出力 C
に含まれる要素数より 1 つ少なくなります。str
が文字ベクトルまたは文字ベクトルの cell 配列の場合、matches
は cell 配列です。str
が string 配列の場合、matches
は string 配列です。
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2013a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)