split
구분 기호에서 문자열 분할
구문
설명
은 공백 문자에서 newStr
= split(str
)str
을 나누고 그 결과를 출력 배열 newStr
로 반환합니다. 입력 배열 str
은 string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 중 하나일 수 있습니다. str
이 string형 배열이면 newStr
도 string형 배열입니다. 그렇지 않으면, newStr
은 문자형 벡터로 구성된 셀형 배열입니다. newStr
은 str
에서 공백 문자를 제외합니다.
str
이 string형 배열 또는 문자형 벡터로 구성된 셀형 배열이고 요소가 여러 개인 경우 각 요소는 동일한 개수의 부분문자열로 나눌 수 있어야 합니다.
str
이 string형 스칼라이거나 문자형 벡터인 경우,newStr
은N
×1
string형 배열이거나 문자형 벡터로 구성된 셀형 배열입니다. 여기서N
은 부분문자열 개수입니다.str
이M
×1
string형 배열이거나 셀형 배열인 경우newStr
은M
×N
배열입니다.str
이1
×M
string형 배열이거나 셀형 배열인 경우newStr
은1
×M
×N
배열입니다.
모든 크기의 string형 배열 또는 셀형 배열에 대해, split
은 N
개 부분문자열을 1
크기의 첫 번째 후행 차원을 따라서 배치합니다.
str
의 모두 요소에 대해 부분문자열 개수가 같지 않은 경우, for
루프에서 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"
/
문자에서 경로를 분할합니다. split
은 myFolders
를 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형 배열 분할하기
각 요소에 환자에 대한 데이터가 쉼표로 구분되어 포함되는 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형 배열이므로, split
은 splitNames
의 두 번째 차원 즉, 열을 따라서 부분문자열을 배치합니다.
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
함수를 사용하여 다시 newStr
과 match
를 함께 결합합니다.
originalStr = join(newStr,match)
originalStr = "bacon, lettuce, and tomato"
입력 인수
str
— 입력 텍스트
string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
입력 텍스트로, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.
delimiter
— 구분 부분문자열
string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
배열(R2020b 이상)
구분 부분문자열로, 다음 중 하나로 지정됩니다.
string형 배열
문자형 벡터
문자형 벡터로 구성된 셀형 배열
pattern
배열(R2020b 이상)
delimiter
에서 지정한 부분문자열은 출력값 newStr
에 나타나지 않습니다.
여러 개의 구분 기호는 string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 pattern
배열로 지정합니다. split
함수는 str
을 delimiter
의 요소에서 분할합니다. 여러 개의 구분 기호가 str
의 동일한 문자에서 일치를 시작하지 않는다면, delimiter
에 나타나는 구분 기호의 순서는 중요하지 않습니다. 그런 경우, split
함수는 delimiter
의 첫 번째 일치하는 구분 기호에서 분할합니다.
예: split(str,{' ',',','--'})
은 공백, 쉼표, 2개 연속 대시가 나타나는 곳에서 str
을 분할합니다.
dim
— 문자열을 분할하는 차원
양의 정수
문자열을 분할하는 차원으로, 양의 정수로 지정됩니다. dim
이 지정되지 않은 경우 디폴트 값은 크기가 1
이 아닌 마지막 배열 차원입니다.
출력 인수
newStr
— 원래 배열에서 분할된 부분문자열
string형 배열 | 문자형 벡터로 구성된 셀형 배열
원래 배열에서 분할된 부분문자열로, string형 배열 또는 문자형 벡터로 구성된 셀형 배열로 반환됩니다. 입력 배열 str
이 string형 배열인 경우, newStr
도 string형 배열입니다. 그렇지 않으면, newStr
은 문자형 벡터로 구성된 셀형 배열입니다.
match
— 식별된 구분 기호
string형 배열 | 문자형 벡터로 구성된 셀형 배열
식별된 구분 기호로, string형 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 입력 배열 str
이 string형 배열인 경우, match
도 string형 배열입니다. 그렇지 않으면, match
는 문자형 벡터로 구성된 셀형 배열입니다.
match
에 포함되는 요소는 항상 출력값 newStr
에 포함되는 요소보다 하나 적습니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2016b에 개발됨
참고 항목
join
| extract
| string
| newline
| compose
| splitlines
| pattern
| lettersPattern
| count
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 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)