이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

strsplit

지정된 구분 기호에서 string형 또는 문자형 벡터 분할

설명

예제

C = strsplit(str)str을 공백에서 분할하여 C로 반환합니다. 공백 문자는 집합 {' ','\f','\n','\r','\t','\v'}에 있는 모든 항목에 해당합니다.

str에 연속된 공백 문자가 있는 경우 strsplit은 이를 공백 하나로 처리합니다.

예제

C = strsplit(str,delimiter)strdelimiter로 지정된 구분 기호에서 분할합니다.

str에 중간에 다른 문자 없이 연속된 구분 기호가 있는 경우 strsplit은 이를 구분 기호 하나로 처리합니다. 예를 들어, strsplit('Hello,world',',')strsplit('Hello,,,world',',')는 동일한 출력값을 반환합니다.

예제

C = strsplit(str,delimiter,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 구분 기호 옵션을 추가로 지정합니다. 예를 들어, 연속된 구분 기호를 개별 구분 기호로 처리하려면 'CollapseDelimiters',false를 지정하면 됩니다.

예제

[C,matches] = strsplit(___)은 배열 matches를 추가적으로 반환합니다. matches 출력 인수는 strsplitstr을 분할하는 위치의 구분 기호를 모두 포함합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

예제

모두 축소

str = 'The rain in Spain.';
C = strsplit(str)
C = 1x4 cell array
    {'The'}    {'rain'}    {'in'}    {'Spain.'}

C는 4개의 문자형 벡터가 들어 있는 셀형 배열입니다.

쉼표로 구분된 값이 포함된 문자형 벡터를 분할합니다.

data = '1.21, 1.985, 1.955, 2.015, 1.885';
C = strsplit(data,', ')
C = 1x5 cell array
    {'1.21'}    {'1.985'}    {'1.955'}    {'2.015'}    {'1.885'}

텍스트의 양쪽에 임의 개수의 공백이 있는 단위 m/s를 포함하는 문자형 벡터 data를 분할합니다. 정규 표현식 \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 array
    {'1.21'}    {'1.985'}    {'1.955'}    {'2.015'}    {'1.885'}    {0x0 char}

matches = 1x5 cell array
    {'m/s'}    {'m/s '}    {' m/s'}    {' m/s '}    {'m/s'}

이 경우, C의 마지막 문자형 벡터는 비어 있습니다. 이 빈 문자형 벡터는 마지막 일치 구분 기호 뒤에 나옵니다.

myPath = 'C:\work\matlab';
C = strsplit(myPath,'\')
C = 1x3 cell array
    {'C:'}    {'work'}    {'matlab'}

문자형 벡터를 ' ''ain'에서 분할하고, 여러 구분 기호를 하나로 취급합니다. 여러 구분 기호는 문자형 벡터로 구성된 셀형 배열로 지정합니다.

str = 'The rain in Spain stays mainly in the plain.';
[C,matches] = strsplit(str,{' ','ain'},'CollapseDelimiters',true)
C = 1x11 cell array
  Columns 1 through 7

    {'The'}    {'r'}    {'in'}    {'Sp'}    {'stays'}    {'m'}    {'ly'}

  Columns 8 through 11

    {'in'}    {'the'}    {'pl'}    {'.'}

matches = 1x10 cell array
  Columns 1 through 7

    {' '}    {'ain '}    {' '}    {'ain '}    {' '}    {'ain'}    {' '}

  Columns 8 through 10

    {' '}    {' '}    {'ain'}

정규 표현식을 사용하고 여러 구분 기호를 별도로 취급하여, 문자형 벡터를 공백과 'ain'에서 분할합니다.

[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',...
    false, 'DelimiterType','RegularExpression')
C = 1x13 cell array
  Columns 1 through 6

    {'The'}    {'r'}    {0x0 char}    {'in'}    {'Sp'}    {0x0 char}

  Columns 7 through 13

    {'stays'}    {'m'}    {'ly'}    {'in'}    {'the'}    {'pl'}    {'.'}

matches = 1x12 cell array
  Columns 1 through 8

    {' '}    {'ain'}    {' '}    {' '}    {'ain'}    {' '}    {' '}    {'ain'}

  Columns 9 through 12

    {' '}    {' '}    {' '}    {'ain'}

이 경우 strsplit은 두 개의 구분 기호를 별도로 취급하므로, 일치하는 구분 기호가 연이어 있는 경우 출력 인수 C에서 그 사이에 빈 문자형 벡터가 나옵니다.

텍스트를 문자형 벡터 ', '', and '에서 분할합니다.

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

matches = 1x2 cell array
    {', '}    {', '}

명령에서 ', '가 먼저 나오고 ', and '', '가 포함되어 있으므로, strsplit 함수는 str을 첫 번째 구분 기호에서 분할한 후 두 번째 구분 기호까지 진행하지 않습니다.

두 구분 기호의 순서를 바꾸면 ', and '가 우선 순위를 갖습니다.

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

matches = 1x2 cell array
    {', '}    {', and '}

입력 인수

모두 축소

입력 텍스트로, 문자형 벡터나 string형 스칼라로 지정됩니다.

데이터형: char | string

구분 문자로, 문자형 벡터, 문자형 벡터로 구성된 1xn 셀형 배열 또는 1xn string형 배열로 지정됩니다. delimiter에 지정된 텍스트는 출력값 C에 나타나지 않습니다.

여러 개의 구분 기호는 셀형 배열이나 string형 배열에 지정하십시오. strsplit 함수는 strdelimiter의 요소에서 분할합니다. 여러 개의 구분 기호가 str의 동일한 문자에서 일치를 시작하지 않는다면, delimiter에 나타나는 구분 기호의 순서는 중요하지 않습니다. 그런 경우, strsplitdelimiter의 첫 번째 일치하는 구분 기호에서 분할합니다.

delimiter는 다음과 같은 이스케이프 시퀀스를 포함할 수 있습니다.

\\

백슬래시

\0

Null

\a

경보

\b

백스페이스

\f

폼 피드(FF)

\n

새 줄(Newline)

\r

캐리지 리턴

\t

가로 탭

\v

세로 탭

예: ','

예: {'-',','}

데이터형: char | cell | string

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: 'DelimiterType','RegularExpression'strsplitdelimiter를 정규 표현식으로 처리하도록 지시합니다.

여러 구분 기호 처리 방식으로, 'CollapseDelimiters'와 함께 true 또는 false가 쉼표로 구분되어 지정됩니다. true이면 str의 연속된 구분 기호가 하나로 취급됩니다. false이면 연속된 구분 기호가 별도의 구분 기호로 취급되어, 일치하는 구분 기호 사이에 빈 문자형 벡터 '' 요소가 표시됩니다.

예: 'CollapseDelimiters',true

구분 기호 유형으로, 'DelimiterType'과 함께 다음 문자형 벡터 중 하나가 쉼표로 구분되어 지정됩니다.

'Simple'이스케이프 시퀀스를 제외하고, strsplitdelimiter를 리터럴 텍스트로 처리합니다.
'RegularExpression'strsplitdelimiter를 정규 표현식으로 처리합니다.

두 경우 모두, delimiter는 이스케이프 시퀀스를 포함할 수 있습니다.

출력 인수

모두 축소

원래 문자형 벡터의 일부로, 문자형 벡터로 구성된 셀형 배열이나 string형 배열로 반환됩니다. C의 요소 개수는 matches에 포함된 요소 개수보다 항상 하나 더 많습니다. 따라서 str이 구분 기호로 시작될 경우, C의 첫 번째 요소에는 문자가 포함되지 않습니다. str이 구분 기호로 끝나는 경우에도 C의 마지막 셀에는 문자가 포함되지 않습니다.

식별된 구분 기호로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 반환됩니다. matches의 요소 개수는 출력 인수 C에 포함된 요소 개수보다 항상 하나 더 적습니다. str이 문자형 벡터이거나 문자형 벡터로 구성된 셀형 배열이면 matches는 셀형 배열입니다. str이 string형 배열이면 matches는 string형 배열입니다.

  • R2016b부터는 string형 배열의 요소들을 분할하는 데 split 함수를 사용하는 것이 좋습니다.

참고 항목

| | |

도움말 항목

R2013a에 개발됨