Main Content

extractBetween

시작 지점과 끝 지점 사이에 있는 부분문자열 추출

설명

예제

newStr = extractBetween(str,startPat,endPat)str에서 부분문자열 startPatendPat 사이에 있는 부분문자열을 추출합니다. 추출되는 부분문자열에 startPatendPat는 포함되지 않습니다.

str이 string형 배열이면 newStr은 string형 배열입니다. 그렇지 않으면, newStr은 문자형 벡터로 구성된 셀형 배열입니다.

str이 string형 배열이나 문자형 벡터로 구성된 셀형 배열이면 extractBetweenstr의 각 요소에서 부분문자열을 추출합니다.

예제

newStr = extractBetween(str,startPos,endPos)str에서 startPos 위치와 endPos 위치에 있는 문자를 포함하여 이들 위치 사이에 있는 부분문자열을 추출합니다. extractBetween은 이 부분문자열을 newStr로 반환합니다.

예제

newStr = extractBetween(___,'Boundaries',bounds)는 위에 열거된 구문에 지정된 시작과 끝을 강제로 포함시키거나 제외시킵니다. bounds'inclusive'이면 시작과 끝이 포함되고, bounds'exclusive'이면 제외됩니다. 예를 들어, extractBetween(str,startPat,endPat,'Boundaries','inclusive')startPatendPat, 그리고 그 사이에 있는 모든 텍스트를 newStr로 반환합니다.

예제

모두 축소

string형 배열을 만든 다음, 부분문자열 사이에 있는 텍스트를 선택합니다.

str = "The quick brown fox"
str = 
"The quick brown fox"

부분문자열 "quick "" fox" 사이에 있는 텍스트를 선택합니다. extractBetween 함수는 텍스트를 선택하지만 "quick "이나 " fox"는 출력값에 포함시키지 않습니다.

newStr = extractBetween(str,"quick "," fox")
newStr = 
"brown"

string형 배열의 각 요소에서 부분문자열을 선택합니다. 각각 다른 부분문자열을 시작 및 끝 표시자로 지정할 경우, 이러한 부분문자열은 str과 같은 크기의 string형 배열이나 셀형 배열에 포함시켜야 합니다.

str = ["The quick brown fox jumps";"over the lazy dog"]
str = 2x1 string
    "The quick brown fox jumps"
    "over the lazy dog"

newStr = extractBetween(str,["quick ";"the "],[" fox";" dog"])
newStr = 2x1 string
    "brown"
    "lazy"

R2020b 이상

태그로 묶인 텍스트로 구성된 string형 배열을 만듭니다.

str = ["<courseName>Calculus I</courseName>";
       "<semester>Fall 2020</semester>";
       "<schedule>MWF 8:00-8:50</schedule>"]
str = 3x1 string
    "<courseName>Calculus I</courseName>"
    "<semester>Fall 2020</semester>"
    "<schedule>MWF 8:00-8:50</schedule>"

태그로 묶인 텍스트를 추출합니다. 먼저 wildcardPattern 함수를 사용하여 임의의 시작 태그 및 종료 태그와 일치하는 패턴을 만듭니다.

startPat = "<" + wildcardPattern + ">"
startPat = pattern
  Matching:

    "<" + wildcardPattern + ">"

endPat = "</" + wildcardPattern + ">"
endPat = pattern
  Matching:

    "</" + wildcardPattern + ">"

그런 다음, extractBetween 함수를 호출합니다.

newStr = extractBetween(str,startPat,endPat)
newStr = 3x1 string
    "Calculus I"
    "Fall 2020"
    "MWF 8:00-8:50"

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

string형 배열을 만든 다음, 숫자로 지정된 시작 위치와 끝 위치 사이에 있는 부분문자열을 선택합니다.

str = "Edgar Allen Poe"
str = 
"Edgar Allen Poe"

중간 이름을 선택합니다. 문자열에서 7번째 위치와 11번째 위치를 지정합니다.

newStr = extractBetween(str,7,11)
newStr = 
"Allen"

string형 배열의 각 요소에서 부분문자열을 선택합니다. 숫자형 배열을 사용하여 각각 다른 시작 위치와 끝 위치를 지정할 경우, 숫자형 배열의 크기는 입력 string형 배열과 동일해야 합니다.

str = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2x1 string
    "Edgar Allen Poe"
    "Louisa May Alcott"

newStr = extractBetween(str,[7;8],[11;10])
newStr = 2x1 string
    "Allen"
    "May"

경계를 강제로 포함하거나 제외하도록 지정하여 string형 배열에서 텍스트를 선택합니다. 경계를 포함하도록 지정할 경우 extractBetween은 선택된 텍스트에 경계를 포함시킵니다. 경계를 제외하도록 지정할 경우 extractBetween은 선택된 텍스트에 경계를 포함시키지 않습니다.

str1 = "small|medium|large"
str1 = 
"small|medium|large"

6번째 위치와 13번째 위치 사이에 있는 텍스트를 선택하되, 해당 위치의 문자는 포함시키지 않습니다.

newStr = extractBetween(str1,6,13,'Boundaries','exclusive')
newStr = 
"medium"

두 부분문자열 사이에 있는 텍스트를 선택하고, 부분문자열 자체도 선택합니다.

str2 = "The quick brown fox jumps over the lazy dog"
str2 = 
"The quick brown fox jumps over the lazy dog"
newStr = extractBetween(str2," brown","jumps",'Boundaries','inclusive')
newStr = 
" brown fox jumps"

문자형 벡터를 만든 다음, 시작 위치와 끝 위치 사이에 있는 텍스트를 선택합니다.

chr = 'mushrooms, peppers, and onions'
chr = 
'mushrooms, peppers, and onions'
newChr = extractBetween(chr,12,18)
newChr = 1x1 cell array
    {'peppers'}

부분문자열 사이에 있는 텍스트를 선택합니다.

newChr = extractBetween(chr,'mushrooms, ',', and')
newChr = 1x1 cell array
    {'peppers'}

입력 인수

모두 축소

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

추출할 텍스트의 시작 위치를 표시하는 텍스트 또는 패턴으로, 다음 중 하나로 지정됩니다.

  • string형 배열

  • 문자형 벡터

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

  • pattern 배열(R2020b 이상)

str이 string형 배열이거나 문자형 벡터로 구성된 셀형 배열이면 str의 모든 요소에서 부분문자열을 추출할 수 있습니다. 부분문자열이 모두 같은 시작 위치를 가진다고 지정하거나 str의 각 요소에서 서로 다른 시작 위치를 가진다고 지정할 수 있습니다.

  • 같은 시작 위치를 지정하려면 startPat를 문자형 벡터, string형 스칼라 또는 pattern 객체로 지정하십시오.

  • 서로 다른 시작 위치를 지정하려면 startPat를 string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 pattern 배열로 지정하십시오.

예: extractBetween(str,"AB","YZ")str의 각 요소에서 ABYZ 사이에 있는 부분문자열을 추출합니다.

예: str2×1 string형 배열인 경우 extractBetween(str,["AB";"FG"],["YZ";"ST"])str(1)에서 ABYZ 사이에 있는 부분문자열을 추출하고 str(2)에서 FGST 사이에 있는 부분문자열을 추출합니다.

추출할 텍스트의 끝 위치를 표시하는 텍스트 또는 패턴으로, 다음 중 하나로 지정됩니다.

  • string형 배열

  • 문자형 벡터

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

  • pattern 배열(R2020b 이상)

str이 string형 배열이거나 문자형 벡터로 구성된 셀형 배열이면 str의 모든 요소에서 부분문자열을 추출할 수 있습니다. 부분문자열이 모두 같은 끝 위치를 가진다고 지정하거나 str의 각 요소에서 서로 다른 끝 위치를 가진다고 지정할 수 있습니다.

  • 같은 끝 위치를 지정하려면 endPat를 문자형 벡터, string형 스칼라 또는 pattern 객체로 지정하십시오.

  • 서로 다른 끝 위치를 지정하려면 endPat를 string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 pattern 배열로 지정하십시오.

예: extractBetween(str,"AB","YZ")str의 각 요소에서 ABYZ 사이에 있는 부분문자열을 추출합니다.

예: str2×1 string형 배열인 경우 extractBetween(str,["AB";"FG"],["YZ";"ST"])str(1)에서 ABYZ 사이에 있는 부분문자열을 추출하고 str(2)에서 FGST 사이에 있는 부분문자열을 추출합니다.

시작 위치로, 숫자형 배열로 지정됩니다.

str이 여러 개의 텍스트 조각을 포함하는 배열인 경우 startPos는 숫자형 스칼라이거나 str과 같은 크기의 숫자형 배열일 수 있습니다.

예: extractBetween(str,5,9)str의 각 요소에서 5번째 위치부터 9번째 위치까지의 부분문자열을 추출합니다.

예: str2×1 string형 배열인 경우 extractBetween(str,[5;10],[9;21])str(1)에서 5번째 위치부터 9번째 위치까지의 부분문자열을 추출하고 str(2)에서 10번째 위치부터 21번째 위치까지의 부분문자열을 추출합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

끝 위치로, 숫자형 배열로 지정됩니다.

str이 여러 개의 텍스트 조각을 포함하는 배열인 경우 endPos는 숫자형 스칼라이거나 str과 같은 크기의 숫자형 배열일 수 있습니다.

예: extractBetween(str,5,9)str의 각 요소에서 5번째 위치부터 9번째 위치까지의 부분문자열을 추출합니다.

예: str2×1 string형 배열인 경우 extractBetween(str,[5;10],[9;21])str(1)에서 5번째 위치부터 9번째 위치까지의 부분문자열을 추출하고 str(2)에서 10번째 위치부터 21번째 위치까지의 부분문자열을 추출합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

경계 동작으로, 'inclusive' 또는 'exclusive'로 지정됩니다. 경계 동작이 inclusive인 경우 추출되는 텍스트에 위에 열거된 인수로 지정된 시작과 끝이 포함됩니다. 경계 동작이 exclusive인 경우 시작과 끝이 포함되지 않습니다.

출력 인수

모두 축소

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

확장 기능

버전 내역

R2016b에 개발됨