Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

strsplit

Cadena dividida en delimitador especificado

Descripción

ejemplo

C = strsplit(str) divide str en espacios en blanco en C. Un carácter de espacio en blanco equivale a cualquier secuencia del conjunto {' ','\f','\n','\r','\t','\v'}.

ejemplo

C = strsplit(str,delimiter) divide str en los delimitadores especificados por delimiter.

ejemplo

C = strsplit(str,delimiter,Name,Value) especifica opciones de delimitador adicionales mediante uno o varios argumentos de par nombre-valor.

ejemplo

[C,matches] = strsplit(___) devuelve además la matriz, matches. El argumento de salida matches contiene todas las apariciones de delimitadores en los que strsplit divide str. Puede utilizar esta sintaxis con cualquiera de los argumentos de entrada de las sintaxis anteriores.

Ejemplos

contraer todo

str = 'The rain in Spain.';
C = strsplit(str)
C = 1x4 cell array
    {'The'}    {'rain'}    {'in'}    {'Spain.'}

C es una matriz 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 = 1x5 cell array
    {'1.21'}    {'1.985'}    {'1.955'}    {'2.015'}    {'1.885'}

Divida un vector de carácter, data, que contiene las unidades m/s con un número arbitrario de espacios en cada 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 = 1x6 cell array
    {'1.21'}    {'1.985'}    {'1.955'}    {'2.015'}    {'1.885'}    {0x0 char}

matches = 1x5 cell array
    {'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 carácter vacío sigue al último delimitador coincidente.

myPath = 'C:\work\matlab';
C = strsplit(myPath,'\')
C = 1x3 cell array
    {'C:'}    {'work'}    {'matlab'}

Divida un vector de caracteres en ' ' y 'ain', tratando varios delimitadores como uno. Especifique varios delimitadores en una matriz de celdas de vectores de caracteres.

str = 'The rain in Spain stays mainly in the plain.';
[C,matches] = strsplit(str,{' ','ain'},'CollapseDelimiters',true)
C = 1x11 cell array
  Columns 1 through 7

    {'The'}    {'r'}    {'in'}    {'Sp'}    {'stays'}    {'m'}    {'ly'}

  Columns 8 through 11

    {'in'}    {'the'}    {'pl'}    {'.'}

matches = 1x10 cell array
  Columns 1 through 7

    {' '}    {'ain '}    {' '}    {'ain '}    {' '}    {'ain'}    {' '}

  Columns 8 through 10

    {' '}    {' '}    {'ain'}

Divida el mismo vector de caracteres en espacios en blanco y en 'ain', utilizando expresiones regulares y tratando delimitadores múltiples por separado.

[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',...
    false, 'DelimiterType','RegularExpression')
C = 1x13 cell array
  Columns 1 through 6

    {'The'}    {'r'}    {0x0 char}    {'in'}    {'Sp'}    {0x0 char}

  Columns 7 through 13

    {'stays'}    {'m'}    {'ly'}    {'in'}    {'the'}    {'pl'}    {'.'}

matches = 1x12 cell array
  Columns 1 through 8

    {' '}    {'ain'}    {' '}    {' '}    {'ain'}    {' '}    {' '}    {'ain'}

  Columns 9 through 12

    {' '}    {' '}    {' '}    {'ain'}

En este caso, strsplit trata los dos delimitadores por separado, por lo que los vectores de caracteres vacíos aparecen en la salida C entre los delimitadores consecutivamente emparejados.

Dividir texto en los vectores de caracteres ', ' y ', and '.

str = 'bacon, lettuce, and tomato';
[C,matches] = strsplit(str,{', ',', and '})
C = 1x3 cell array
    {'bacon'}    {'lettuce'}    {'and tomato'}

matches = 1x2 cell array
    {', '}    {', '}

Puesto que el comando enumera ', ' primero y ', and ' contiene ', ', la función strsplit se divide str en el primer delimitador y nunca procede al segundo delimitador.

Si se invierte el orden de los delimitadores, ', and ' toma prioridad.

str = 'bacon, lettuce, and tomato';
[C,matches] = strsplit(str,{', and ',', '})
C = 1x3 cell array
    {'bacon'}    {'lettuce'}    {'tomato'}

matches = 1x2 cell array
    {', '}    {', and '}

Argumentos de entrada

contraer todo

Texto de entrada, especificado como un vector de caracteres o un escalar de cadena.

Tipos de datos: char | string

Delimitando caracteres, especificados como un vector de caracteres, una matriz de celdas 1-by-N de vectores de caracteres, o un array 1-by-N String. El texto especificado en delimiter no aparece en la salida C.

Especifique varios delimitadores en una matriz de celdas o en una matriz de cadenas. La función strsplit divide str en los elementos de delimiter. El orden en el que aparecen los delimitadores en delimiter no importa a menos que varios delimitadores inicien una coincidencia con el mismo carácter en str. En ese caso, strsplit se divide en el primer delimitador coincidente en delimiter.

delimiter puede incluir las siguientes secuencias de escape:

\\

Barra invertida

\0

Null

\a

Alarma

\b

Retroceso

\f

Feed de formularios

\n

Nueva línea

\r

Retorno de carro

\t

Solapa horizontal

\v

Ficha vertical

Ejemplo: ','

Ejemplo: {'-',','}

Tipos de datos: char | cell | string

Argumentos de par nombre-valor

Ejemplo: 'DelimiterType','RegularExpression' indica a strsplit que trate delimiter como una expresión regular.

Manejo de delimitadores múltiples, especificado como el par separado por comas consistente en 'CollapseDelimiters' y true o false. Si true, los delimitadores consecutivos en str se tratan como uno. Si false, los delimitadores consecutivos se tratan como delimitadores separados, lo que resulta en un vector de caracteres vacío ''elementos entre delimitadores emparejados.

Ejemplo: 'CollapseDelimiters',true

Tipo delimitador, especificado como el par separado por comas consistente en 'DelimiterType' y uno de los siguientes vectores de caracteres.

'Simple'A excepción de las secuencias de escape, strsplit trata delimiter como texto literal..
'RegularExpression' strsplit trata a delimiter como una expresión regular.

En ambos casos, delimiter puede incluir secuencias de escape.

Argumentos de salida

contraer todo

Partes del vector de carácter original, devueltos como una matriz de celdas de vectores de caracteres o como una matriz de cadenas. C siempre contiene un elemento más que matches contiene. Por 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 una matriz de celdas de vectores de caracteres o como una matriz de cadenas. matches siempre contiene un elemento menos que la salida C contiene. Si str es un vector de caracteres o una matriz de vectores de caracteres, matches es una matriz de celdas. Si str es una matriz de cadena, matches es una matriz de cadena.

Sugerencias

  • A partir de R2016b, se recomienda la función split para dividir elementos de una matriz de cadenas.

Consulte también

| | |

Introducido en R2013a