Main Content

split

구분 기호에서 문자열 분할

설명

예제

newStr = split(str)은 공백 문자에서 str을 나누고 그 결과를 출력 배열 newStr로 반환합니다. 입력 배열 str은 string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 중 하나일 수 있습니다. str이 string형 배열이면 newStr도 string형 배열입니다. 그렇지 않으면, newStr은 문자형 벡터로 구성된 셀형 배열입니다. newStrstr에서 공백 문자를 제외합니다.

str이 string형 배열 또는 문자형 벡터로 구성된 셀형 배열이고 요소가 여러 개인 경우 각 요소는 동일한 개수의 부분문자열로 나눌 수 있어야 합니다.

  • str이 string형 스칼라이거나 문자형 벡터인 경우, newStrN×1 string형 배열이거나 문자형 벡터로 구성된 셀형 배열입니다. 여기서 N은 부분문자열 개수입니다.

  • strM×1 string형 배열이거나 셀형 배열인 경우 newStrM×N 배열입니다.

  • str1×M string형 배열이거나 셀형 배열인 경우 newStr1×M×N 배열입니다.

모든 크기의 string형 배열 또는 셀형 배열에 대해, splitN개 부분문자열을 1 크기의 첫 번째 후행 차원을 따라서 배치합니다.

str의 모두 요소에 대해 부분문자열 개수가 같지 않은 경우, for 루프에서 split을 호출하여 한 번에 하나씩 str의 요소를 분할합니다.

예제

newStr = split(str,delimiter)delimiter에서 지정한 구분 기호에서 str의 각 요소를 분할합니다. 출력값 newStr은 구분 기호를 포함하지 않습니다.

예제

newStr = split(str,delimiter,dim)str의 각 요소를 dim에서 지정한 차원을 따르는 벡터로 분할합니다.

예제

[newStr,match] = split(___)은 구분 기호가 나오는 경우를 전부 포함하는 배열, match를 추가로 반환합니다. 구분 기호가 나오는 곳에서는 split 함수가 str을 분할합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

예제

모두 축소

공백 문자에서 string형 배열의 이름을 분할합니다. 그런 다음 성이 이름 앞에 오도록 문자열 순서를 변경하고 결합합니다.

이름을 포함하는 3×1 string형 배열을 만듭니다.

names = ["Mary Butler";
         "Santiago Marquez";
         "Diana Lee"]
names = 3x1 string
    "Mary Butler"
    "Santiago Marquez"
    "Diana Lee"

공백에서 names를 분할하여, 3×2 string형 배열로 만듭니다.

names = split(names)
names = 3x2 string
    "Mary"        "Butler" 
    "Santiago"    "Marquez"
    "Diana"       "Lee"    

성이 첫 번째 열에 오도록 names의 열을 전환합니다. 각각의 성 뒤에 쉼표를 추가합니다.

names = [names(:,2) names(:,1)];
names(:,1) = names(:,1) + ','
names = 3x2 string
    "Butler,"     "Mary"    
    "Marquez,"    "Santiago"
    "Lee,"        "Diana"   

성과 이름을 결합합니다. join 함수는 결합되는 문자열 사이에 공백 문자를 표시합니다. 결합 후 names는 3×1 string형 배열이 됩니다.

names = join(names)
names = 3x1 string
    "Butler, Mary"
    "Marquez, Santiago"
    "Lee, Diana"

폴더의 경로를 포함하는 문자열을 만듭니다.

myPath = "/Users/jdoe/My Documents/Examples"
myPath = 
"/Users/jdoe/My Documents/Examples"

/ 문자에서 경로를 분할합니다. splitmyFolders를 5×1 string형 배열로 반환합니다. myPath/ 문자로 시작하므로 첫 번째 string형은 ""입니다.

myFolders = split(myPath,"/")
myFolders = 5x1 string
    ""
    "Users"
    "jdoe"
    "My Documents"
    "Examples"

myFolders\를 구분 기호로 사용하여 새 경로에 결합합니다. C:을 경로의 시작으로 추가합니다.

myNewPath = join(myFolders,"\");
myNewPath = 'C:' + myNewPath
myNewPath = 
"C:\Users\jdoe\My Documents\Examples"

R2020b 이상

텍스트를 구분 기호로 취급하여 문자열에서 숫자를 가져옵니다. 패턴을 사용하여 일치하는 텍스트를 찾습니다. 그런 다음 숫자를 모두 더합니다.

먼저 숫자를 포함하는 문자열을 만듭니다.

str = "10 apples 3 bananas and 5 oranges"
str = 
"10 apples 3 bananas and 5 oranges"

그런 다음 공백 문자나 문자와 일치하는 패턴을 만듭니다.

pat = " " | lettersPattern
pat = pattern
  Matching:

    " " | lettersPattern

pat를 구분 기호로 사용하여 문자열을 분할합니다. 빈 문자열은 사이에 아무것도 없는 문자 시퀀스와 공백 사이의 분할을 나타냅니다. 예를 들어, "10 apples"에는 구분 기호 " " 앞에 분할이 있고 " ""apples" 사이에 분할이 있습니다. 구분 기호 " ""apples" 사이에 아무것도 없으므로 split 함수는 사이에 아무것도 없음을 나타내는 빈 문자열을 반환합니다.

N = split(str,pat)
N = 11x1 string
    "10"
    ""
    ""
    "3"
    ""
    ""
    ""
    ""
    "5"
    ""
    ""

빈 문자열을 삭제하고 숫자를 나타내는 부분문자열을 유지합니다.

N = N(strlength(N) > 0)
N = 3x1 string
    "10"
    "3"
    "5"

마지막으로, N을 숫자형 배열로 반환하고 합계를 구합니다.

N = str2double(N);
sum(N)
ans = 18

pattern 객체를 만드는 함수 목록은 pattern 항목을 참조하십시오.

문자열을 생성합니다.

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

느낌표와 공백 문자에서 str을 분할합니다. newStr은 10×1 문자열 배열입니다. str에서 마지막 문자는 구분 기호이므로, 마지막 string형은 빈 문자열 ""입니다.

newStr = split(str,[" ","!"])
newStr = 12x1 string
    "A"
    "horse"
    ""
    "A"
    "horse"
    ""
    "My"
    "kingdom"
    "for"
    "a"
    "horse"
    ""

각 요소에 환자에 대한 데이터가 쉼표로 구분되어 포함되는 string형 배열을 만듭니다.

patients = ["LastName,Age,Gender,Height,Weight";
            "Adams,47,F,64,123";
            "Jones,,,68,175";
            "King,,M,66,180";
            "Smith,38,F,63,118"]
patients = 5x1 string
    "LastName,Age,Gender,Height,Weight"
    "Adams,47,F,64,123"
    "Jones,,,68,175"
    "King,,M,66,180"
    "Smith,38,F,63,118"

string형 배열을 분할합니다. 두 쉼표 사이에 아무것도 없는 쉼표 쌍은 누락된 데이터를 나타냅니다. split이 반복된 구분 기호에서 분할하는 경우, 빈 문자열을 출력 배열의 대응하는 요소로 반환합니다.

patients = split(patients,",")
patients = 5x5 string
    "LastName"    "Age"    "Gender"    "Height"    "Weight"
    "Adams"       "47"     "F"         "64"        "123"   
    "Jones"       ""       ""          "68"        "175"   
    "King"        ""       "M"         "66"        "180"   
    "Smith"       "38"     "F"         "63"        "118"   

이름을 포함하는 3×1 string형 배열을 만듭니다.

names = ["Mary Butler";
         "Santiago Marquez";
         "Diana Lee"]
names = 3x1 string
    "Mary Butler"
    "Santiago Marquez"
    "Diana Lee"

공백 문자에서 배열을 분할합니다. 기본적으로, split은 크기 1의 첫 번째 후행 차원을 따라서 출력 부분문자열을 배치합니다. names는 3×1 string형 배열이므로, splitsplitNames의 두 번째 차원 즉, 열을 따라서 부분문자열을 배치합니다.

splitNames = split(names)
splitNames = 3x2 string
    "Mary"        "Butler" 
    "Santiago"    "Marquez"
    "Diana"       "Lee"    

행 또는 첫 번째 차원을 따라서 부분문자열을 배치하려면 구분 문자를 지정한 후 차원을 지정하십시오. splitNames는 이제 2×3 string형 배열로, 이름이 첫 번째 행에 있고 성이 두 번째 행에 있습니다.

splitNames = split(names," ",1)
splitNames = 2x3 string
    "Mary"      "Santiago"    "Diana"
    "Butler"    "Marquez"     "Lee"  

문자열을 생성합니다.

str = "bacon, lettuce, and tomato"
str = 
"bacon, lettuce, and tomato"

구분 기호에서 str을 분할합니다. 분할 결과를 string형 배열에 반환하고 구분 기호를 두 번째 string형 배열에 반환합니다. 연속 구분 기호 사이에 텍스트가 없는 경우, split은 빈 문자열을 반환합니다.

[newStr,match] = split(str,["and",","," "])
newStr = 7x1 string
    "bacon"
    ""
    "lettuce"
    ""
    ""
    ""
    "tomato"

match = 6x1 string
    ","
    " "
    ","
    " "
    "and"
    " "

join 함수를 사용하여 다시 newStrmatch를 함께 결합합니다.

originalStr = join(newStr,match)
originalStr = 
"bacon, lettuce, and tomato"

입력 인수

모두 축소

입력 텍스트로, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

구분 부분문자열로, 다음 중 하나로 지정됩니다.

  • string형 배열

  • 문자형 벡터

  • 문자형 벡터로 구성된 셀형 배열

  • pattern 배열(R2020b 이상)

delimiter에서 지정한 부분문자열은 출력값 newStr에 나타나지 않습니다.

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

예: split(str,{' ',',','--'})은 공백, 쉼표, 2개 연속 대시가 나타나는 곳에서 str을 분할합니다.

문자열을 분할하는 차원으로, 양의 정수로 지정됩니다. dim이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 마지막 배열 차원입니다.

출력 인수

모두 축소

원래 배열에서 분할된 부분문자열로, string형 배열 또는 문자형 벡터로 구성된 셀형 배열로 반환됩니다. 입력 배열 str이 string형 배열인 경우, newStr도 string형 배열입니다. 그렇지 않으면, newStr은 문자형 벡터로 구성된 셀형 배열입니다.

식별된 구분 기호로, string형 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 입력 배열 str이 string형 배열인 경우, match도 string형 배열입니다. 그렇지 않으면, match는 문자형 벡터로 구성된 셀형 배열입니다.

match에 포함되는 요소는 항상 출력값 newStr에 포함되는 요소보다 하나 적습니다.

확장 기능

버전 내역

R2016b에 개발됨