strsplit
Dividir una cadena o vector de caracteres desde un delimitador específico
Sintaxis
Descripción
Nota
Se recomienda split
en lugar de strsplit
porque proporciona una mayor flexibilidad y permite la vectorización. Para obtener más información, consulte Funcionalidad alternativa.
divide C
= strsplit(str
)str
en espacios en blanco en C
. Un carácter de espacio en blanco equivale a cualquier secuencia en el conjunto {' ','\f','\n','\r','\t','\v'}
.
Si str
tiene caracteres de espacio en blanco consecutivos, strsplit
los trata como un espacio en blanco.
divide C
= strsplit(str
,delimiter
)str
desde los delimitadores especificados por delimiter
.
Si str
tiene delimitadores consecutivos, sin otros caracteres entre ellos, strsplit
los trata como un delimitador. Por ejemplo, tanto strsplit('Hello,world',',')
como strsplit('Hello,,,world',',')
devuelven la misma salida.
especifica las opciones adicionales del delimitador utilizando uno o más argumentos de par nombre-valor. Por ejemplo, para tratar delimitadores consecutivos como delimitadores independientes, puede especificar C
= strsplit(str
,delimiter
,Name,Value
)'CollapseDelimiters',false
.
Ejemplos
str = 'The rain in Spain.';
C = strsplit(str)
C = 1×4 cell
{'The'} {'rain'} {'in'} {'Spain.'}
C
es un arreglo de celdas que contiene cuatro vectores de caracteres.
Divida un vector de caracteres que contenga valores separados por comas.
data = '1.21, 1.985, 1.955, 2.015, 1.885'; C = strsplit(data,', ')
C = 1×5 cell
{'1.21'} {'1.985'} {'1.955'} {'2.015'} {'1.885'}
Divida un vector de caracteres data
, que contiene las unidades m/s
con un número arbitrario de espacios en blanco en cualquier lado del texto. La expresión regular \s*
coincide con cualquier carácter de espacio en blanco que aparezca cero o más veces.
data = '1.21m/s1.985m/s 1.955 m/s2.015 m/s 1.885m/s'; [C,matches] = strsplit(data,'\s*m/s\s*',... 'DelimiterType','RegularExpression')
C = 1×6 cell
{'1.21'} {'1.985'} {'1.955'} {'2.015'} {'1.885'} {0×0 char}
matches = 1×5 cell
{'m/s'} {'m/s '} {' m/s'} {' m/s '} {'m/s'}
En este caso, el último vector de caracteres de C
está vacío. Este vector de caracteres vacío sigue al último delimitador que coincide.
myPath = 'C:\work\matlab'; C = strsplit(myPath,'\')
C = 1×3 cell
{'C:'} {'work'} {'matlab'}
Divida un vector de caracteres en ' '
y 'ain'
, tratando múltiples delimitadores como uno. Especifique múltiples delimitadores en un arreglo de celdas de vectores de caracteres.
str = 'The rain in Spain stays mainly in the plain.'; [C,matches] = strsplit(str,{' ','ain'},'CollapseDelimiters',true)
C = 1×11 cell
{'The'} {'r'} {'in'} {'Sp'} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1×10 cell
{' '} {'ain '} {' '} {'ain '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
Divida el mismo vector de caracteres desde espacios en blanco y 'ain'
, utilizando expresiones regulares y tratando múltiples delimitadores de manera independiente.
[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',... false, 'DelimiterType','RegularExpression')
C = 1×13 cell
{'The'} {'r'} {0×0 char} {'in'} {'Sp'} {0×0 char} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1×12 cell
{' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
En este caso, strsplit
trata los dos delimitadores de manera independiente, así que aparecen vectores de caracteres vacíos en la salida C
entre los delimitadores que coinciden de forma consecutiva.
Divida el texto de los vectores de caracteres ', '
y ', and '
.
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', ',', and '})
C = 1×3 cell
{'bacon'} {'lettuce'} {'and tomato'}
matches = 1×2 cell
{', '} {', '}
Dado que el comando enumera ', '
primero y ', and '
contiene ', '
, la función strsplit
divide str
desde el primer delimitador y nunca continúa al segundo delimitador.
Si invierte el orden de los delimitadores, ', and '
se convierte en la prioridad.
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', and ',', '})
C = 1×3 cell
{'bacon'} {'lettuce'} {'tomato'}
matches = 1×2 cell
{', '} {', and '}
Argumentos de entrada
Texto de entrada, especificado como vector de caracteres o escalar de cadena.
Tipos de datos: char
| string
Caracteres delimitantes, especificados como vector de caracteres, arreglo de celdas de vectores de caracteres de 1
por n
o arreglo de cadenas de 1
por n
. El texto especificado en delimiter
no aparece en la salida C
.
Especifique múltiples delimitadores en un arreglo de celdas o un arreglo de cadenas. La función strsplit
divide str
desde los elementos de delimiter
. El orden en el que aparecen los delimitadores en delimiter
no tiene importancia salvo si múltiples delimitadores comienzan una coincidencia en el mismo carácter de str
. En ese caso, strsplit
divide desde el primer delimitador que coincide de delimiter
.
delimiter
puede incluir las siguientes secuencias de escape:
| Barra invertida |
| Nulo |
| Alarma |
| Retroceso |
| Salto de impresión |
| Nueva línea |
| Retorno de carro |
| Tabulación horizontal |
| Tabulación vertical |
Ejemplo: ','
Ejemplo: {'-',','}
Tipos de datos: char
| cell
| string
Argumentos de par nombre-valor
Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.
En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: 'DelimiterType','RegularExpression'
indica a strsplit
que trate delimiter
como una expresión regular.
Gestión de múltiples delimitadores, especificada como el par separado por comas que consta de 'CollapseDelimiters'
y true
o false
. Si es true
, los delimitadores consecutivos de str
se tratan como uno. Si es false
, los delimitadores consecutivos se tratan como delimitadores independientes, lo que tiene como resultado elementos ''
del vector de caracteres vacíos entre los delimitadores que coinciden.
Ejemplo: 'CollapseDelimiters',true
Tipo de delimitador, especificado como el par separado por comas que consta de 'DelimiterType'
y uno de los siguientes vectores de caracteres.
'Simple' | Salvo en secuencias de escape, strsplit trata delimiter como texto literal. |
'RegularExpression' | strsplit trata delimiter como una expresión regular. |
En ambos casos, delimiter
puede incluir secuencias de escape.
Argumentos de salida
Partes del vector de caracteres original, devueltas como un arreglo de celdas de vectores de caracteres o un arreglo de cadenas. C
siempre contine un elemento más que los que contiene matches
. Por lo tanto, si str
comienza con un delimitador, el primer elemento de C
no contiene caracteres. Si str
termina con un delimitador, la última celda de C
no contiene caracteres.
Delimitadores identificados, devueltos como un arreglo de celdas de vectores de caracteres o un arreglo de cadenas. matches
siempre contine un elemento menos que los que contiene la salida C
. Si str
es un vector de caracteres o un arreglo de celdas de vectores de caracteres, matches
es un arreglo de celdas. Si str
es un arreglo de cadenas, matches
es un arreglo de cadenas.
Funcionalidad alternativa
Actualice el código que emplea strsplit
para utilizar split
en su lugar. La orientación predeterminada de split
es por columna. Por ejemplo:
No recomendado | Recomendado |
---|---|
str = strsplit("1 2 3") str = 1×3 string array "1" "2" "3" | str = split("1 2 3") str = 3×1 string array "1" "2" "3" |
Capacidades ampliadas
Notas y limitaciones de uso:
El primer argumento de entrada para
strsplit
debe ser un vector de caracteres.
Esta función es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en entornos basados en subprocesos.
Historial de versiones
Introducido en R2013aGenere código C/C++ para la función strsplit
.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)