strsplit
指定した区切り記号で string または文字ベクトルを分割
構文
説明
は、1 つ以上の名前と値のペアの引数を使用して追加の区切り記号オプションを指定します。たとえば、連続する区切り文字を個別の区切り記号として扱うには、C
= strsplit(str
,delimiter
,Name,Value
)'CollapseDelimiters',false
を指定できます。
例
str = 'The rain in Spain.';
C = strsplit(str)
C = 1×4 cell
{'The'} {'rain'} {'in'} {'Spain.'}
C
は 4 つの文字ベクトルを含む cell 配列です。
コンマ区切り値を格納した文字ベクトルを分割します。
data = '1.21, 1.985, 1.955, 2.015, 1.885'; C = strsplit(data,', ')
C = 1×5 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 = 1×6 cell
{'1.21'} {'1.985'} {'1.955'} {'2.015'} {'1.885'} {0×0 char}
matches = 1×5 cell
{'m/s'} {'m/s '} {' m/s'} {' m/s '} {'m/s'}
この場合、C
の最後の文字ベクトルは空です。この空の文字ベクトルは、最後に一致した区切り記号の後に続きます。
myPath = 'C:\work\matlab'; C = strsplit(myPath,'\')
C = 1×3 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 = 1×11 cell
{'The'} {'r'} {'in'} {'Sp'} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1×10 cell
{' '} {'ain '} {' '} {'ain '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
正規表現を使用し、複数の区切り記号を個別に扱って、同じ文字ベクトルを空白と 'ain'
で分割します。
[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',... false, 'DelimiterType','RegularExpression')
C = 1×13 cell
{'The'} {'r'} {0×0 char} {'in'} {'Sp'} {0×0 char} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1×12 cell
{' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
この場合、strsplit
は 2 つの区切り記号を個別に扱うため、出力 C
の連続して一致する区切り記号の間に空の文字ベクトルが現れます。
文字ベクトル ', '
および ', and '
でテキストを分割します。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', ',', and '})
C = 1×3 cell
{'bacon'} {'lettuce'} {'and tomato'}
matches = 1×2 cell
{', '} {', '}
このコマンドでは ', '
が最初にリストされ、', and '
に ', '
が含まれているため、関数 strsplit
は最初の区切り記号で str
を分割し、2 番目の区切り記号には進みません。
区切り記号の順序を逆にすると、', and '
が優先されます。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', and ',', '})
C = 1×3 cell
{'bacon'} {'lettuce'} {'tomato'}
matches = 1×2 cell
{', '} {', and '}
入力引数
入力テキスト。文字ベクトルまたは string スカラーとして指定します。
データ型: char
| 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'
と true
または false
で構成されるコンマ区切りのペアとして指定します。true
の場合、str
内の連続した区切り記号は 1 つの区切り記号として扱われます。false
の場合、連続した区切り記号は個別の区切り記号として扱われるため、一致する区切り記号の間は空の文字ベクトル ''
要素になります。
例: 'CollapseDelimiters',true
区切り記号の種類。'DelimiterType'
と次の文字ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。
'Simple' | strsplit は、エスケープ シーケンスを除く delimiter をリテラル テキストとして扱います。 |
'RegularExpression' | strsplit は delimiter を正規表現として扱います。 |
いずれの場合も、delimiter
にはエスケープ シーケンスを含めることができます。
出力引数
元の文字ベクトルの一部。文字ベクトルの cell 配列または string 配列として返されます。C
の要素数は、常に matches
に含まれる要素数より 1 つ多くなります。したがって、str
が区切り記号で始まる場合、C
の最初の要素には文字が含まれません。str
が区切り記号で終わる場合、C
の最後のセルには文字が含まれません。
指定された区切り記号。文字ベクトルの cell 配列または string 配列として返されます。matches
の要素数は、常に出力 C
に含まれる要素数より 1 つ少なくなります。str
が文字ベクトルまたは文字ベクトルの cell 配列の場合、matches
は cell 配列です。str
が string 配列の場合、matches
は string 配列です。
代替機能
strsplit
を使用しているコードについて、代わりに split
を使用するように更新します。split
の既定の方向は列方向です。以下に例を示します。
非推奨 | 推奨 |
---|---|
str = strsplit("1 2 3") str = 1×3 string array "1" "2" "3" | str = split("1 2 3") str = 3×1 string array "1" "2" "3" |
拡張機能
使用上の注意および制限:
strsplit
の最初の入力引数は文字ベクトルでなければなりません。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2013a で導入strsplit
関数の C/C++ コードを生成します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)