Buscar y reemplazar texto
Procesar datos de texto a menudo conlleva buscar y reemplazar subcadenas. Hay varias funciones que encuentran texto y devuelven información diferente: algunas funciones confirman que el texto existe, mientras que otras cuentan el número de veces que aparece un texto determinado, encuentran índices de inicio o extraen subcadenas. Estas funciones actúan en vectores de caracteres y escalares de cadenas, como "yes"
, así como en arreglos de caracteres y cadenas, como ["yes"
,"no";"abc"
,"xyz"
]. Además, puede utilizar patrones para definir reglas de búsqueda, como uno o más caracteres de letras o dígitos.
Buscar texto
Para determinar si hay texto presente, utilice una función que devuelva valores lógicos, como contains
, startsWith
o endsWith
. Los valores lógicos de 1
corresponden a “true” y los de 0
, a “false”.
txt = "she sells seashells by the seashore"; TF = contains(txt,"sea")
TF = logical
1
Calcule cuántas veces aparece el texto con la función count
.
n = count(txt,"sea")
n = 2
Para localizar dónde aparece el texto, utilice la función strfind
, que devuelve índices de inicio.
idx = strfind(txt,"sea")
idx = 1×2
11 28
Encuentre y extraiga el texto con funciones de extracción, como extract
, extractBetween
, extractBefore
o extractAfter
.
mid = extractBetween(txt,"sea","shore")
mid = "shells by the sea"
También puede incluir el texto límite.
mid = extractBetween(txt,"sea","shore","Boundaries","inclusive")
mid = "seashells by the seashore"
Encontrar texto en arreglos
Las funciones de búsqueda y reemplazo también pueden encontrar texto en arreglos multielemento. Por ejemplo, busque nombres de colores en varios títulos de canciones.
songs = ["Yellow Submarine"; "Penny Lane"; "Blackbird"]; colors =["Red","Yellow","Blue","Black","White"]; TF = contains(songs,colors)
TF = 3x1 logical array
1
0
1
Para enumerar las canciones que contienen nombres de colores, utilice el arreglo lógico TF
como índice en el arreglo songs
original. Esta técnica se denomina indexación lógica.
colorful = songs(TF)
colorful = 2x1 string
"Yellow Submarine"
"Blackbird"
Utilice la función replace
para reemplazar el texto de songs
que coincida con elementos de colors
con la cadena "Orange"
.
replace(songs,colors,"Orange")
ans = 3x1 string
"Orange Submarine"
"Penny Lane"
"Orangebird"
Patrones de coincidencia
Desde la versión R2020b
Además de buscar texto literal, como “mar” o “amarillo”, puede buscar texto que siga un patrón. Hay muchos patrones predefinidos, como digitsPattern
, para encontrar dígitos numéricos.
address = "123a Sesame Street, New York, NY 10128";
nums = extract(address,digitsPattern)
nums = 2x1 string
"123"
"10128"
Para aumentar la precisión en las búsquedas, puede combinar patrones. Por ejemplo, localice palabras que comiencen por el carácter “S”. Utilice una cadena para especificar el carácter “S” y lettersPattern
para encontrar otras letras después de dicho carácter.
pat = "S" + lettersPattern;
StartWithS = extract(address,pat)
StartWithS = 2x1 string
"Sesame"
"Street"
Para obtener más información, consulte Build Pattern Expressions.
Consulte también
contains
| extract
| count
| pattern
| replace
| strfind