Main Content

텍스트를 검색하고 바꾸기

텍스트 데이터 처리 시 부분문자열 검색 및 바꾸기가 포함된 경우가 많습니다. 텍스트를 찾고 서로 다른 정보를 반환하는 몇 가지 함수가 있습니다. 일부 함수는 텍스트가 존재하는지 확인하고, 다른 함수는 텍스트가 나타나는 횟수를 세거나 시작 인덱스를 찾거나 부분문자열을 추출합니다. 이러한 함수는 문자형 벡터 및 string형 스칼라(예: "yes")뿐만 아니라 문자형 배열 및 string형 배열(예: ["yes","no";"abc","xyz"])에서도 작동합니다. 또한 패턴을 사용하여 검색 규칙을 정의할 수도 있습니다(예: 하나 이상의 영문자 또는 숫자).

텍스트 검색하기

텍스트가 존재하는지 확인하려면 contains, startsWith, endsWith 등의 논리값을 반환하는 함수를 사용하십시오. 논리값 1은 true에 해당하고 0은 false에 해당합니다.

txt = "she sells seashells by the seashore"; 
TF = contains(txt,"sea")
TF = logical
   1

count 함수를 사용하여 텍스트가 나타나는 횟수를 계산합니다.

n = count(txt,"sea")
n = 2

텍스트가 나타나는 위치를 찾으려면 시작 인덱스를 반환하는 strfind 함수를 사용하십시오.

idx = strfind(txt,"sea")
idx = 1×2

    11    28

extract, extractBetween, extractBefore, extractAfter 등의 추출 함수를 사용하여 텍스트를 찾아 추출합니다.

mid = extractBetween(txt,"sea","shore")
mid = 
"shells by the sea"

선택적으로, 경계 텍스트를 포함시킵니다.

mid = extractBetween(txt,"sea","shore","Boundaries","inclusive")
mid = 
"seashells by the seashore"

배열에서 텍스트 찾기

검색 및 바꾸기 함수는 요소를 여러 개 가진 배열에서도 텍스트를 찾을 수 있습니다. 예를 들어, 여러 노래 제목에서 색 이름을 찾아 보겠습니다.

songs = ["Yellow Submarine"; 
         "Penny Lane";  
         "Blackbird"]; 

colors =["Red","Yellow","Blue","Black","White"]; 

TF = contains(songs,colors)
TF = 3x1 logical array

   1
   0
   1

색 이름이 들어간 노래를 나열하려면 논리형 TF 배열을 원래 songs 배열에 대한 인덱스로 사용하십시오. 이 기법을 논리형 인덱싱이라고 합니다.

colorful = songs(TF)
colorful = 2x1 string
    "Yellow Submarine"
    "Blackbird"

함수 replace를 사용하여 songs에서 colors의 요소와 일치하는 텍스트를 문자열 "Orange"로 바꿉니다.

replace(songs,colors,"Orange")
ans = 3x1 string
    "Orange Submarine"
    "Penny Lane"
    "Orangebird"

패턴 일치시키기

R2020b 이상

“sea” 또는 “yellow”와 같은 리터럴 텍스트를 검색하는 것 외에, 패턴이 일치하는 텍스트도 검색할 수 있습니다. 미리 정의된 패턴이 많이 있습니다(예: 숫자를 찾을 수 있는 digitsPattern).

address = "123a Sesame Street, New York, NY 10128"; 
nums = extract(address,digitsPattern) 
nums = 2x1 string
    "123"
    "10128"

더 정밀한 검색을 위해 패턴을 조합할 수 있습니다. 예를 들어, 문자 “S”로 시작하는 단어를 찾아 보겠습니다. “S” 문자를 지정하기 위한 문자열과 해당 문자 뒤의 추가 문자를 찾기 위한 lettersPattern을 사용합니다.

pat = "S" + lettersPattern; 
StartWithS = extract(address,pat) 
StartWithS = 2x1 string
    "Sesame"
    "Street"

자세한 내용은 패턴 표현식 작성하기 항목을 참조하십시오.

참고 항목

| | | | |

관련 항목