Main Content

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

| | | | |

Temas relacionados