Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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
    {'The'}    {'rain'}    {'in'}    {'Spain.'}

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

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

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'}

텍스트의 양쪽에 임의 개수의 공백이 있는 단위 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
    {'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'}

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

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은 두 개의 구분 기호를 별도로 취급하므로, 일치하는 구분 기호가 연이어 있는 경우 출력 인수 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을 첫 번째 구분 기호에서 분할한 후 두 번째 구분 기호까지 진행하지 않습니다.

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

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

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

입력 인수

모두 축소

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

데이터형: char | string

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

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

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

\\

백슬래시

\0

Null

\a

경보

\b

백스페이스

\f

폼 피드(FF)

\n

새 줄(Newline)

\r

캐리지 리턴

\t

가로 탭

\v

세로 탭

예: ','

예: {'-',','}

데이터형: char | cell | string

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: '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형 배열입니다.

확장 기능

버전 내역

R2013a에 개발됨

참고 항목

| | | | | | |

도움말 항목