strtok

Выбранные части строк

Описание

пример

token = strtok(str) синтаксические анализы str слева направо использование пробельных символов как разделители, и возвращает часть или весь текст в token. Во-первых, strtok игнорирует любой ведущий пробел в str. Затем strtok запускается в первом символе, который не является пробелом и включает все символы до, но не включая, следующий пробельный символ. strtok возвращает ту часть текста в token. Если strtok не находит, что любой пробел использует в качестве разделителя, затем token включает все символы до, и включая, конец str.

пример

token = strtok(str,delimiters) синтаксические анализы str использование символов в delimiters. Если delimiters включает больше чем один символ, затем strtok обработки каждый символ в delimiters как отдельный разделитель. Поскольку разделители являются отдельными символами, delimiters может быть любой размер и символы в delimiters может быть в любом порядке.

В этом синтаксисе пробельные символы не являются разделителями, если вы не включаете их в delimiters.

пример

[token,remain] = strtok(___) возвращает оставшийся текст, если таковые имеются, в remain. Если strtok находит разделитель, затем он включен в начале remain. Если strtok не находит разделителей в str, затем это возвращает весь str, за исключением ведущих разделителей, в token, и remain не имеет никаких символов. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

Примеры

свернуть все

Создайте вектор символов. Возвратите весь текст до первого пробельного символа, который является разделителем. strtok отбрасывания, ведущие пробельные символы.

chr = '     Four score and seven years ago'
chr = 
'     Four score and seven years ago'
token = strtok(chr)
token = 
'Four'

Создайте строку. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

Возвратите первую часть строки с помощью '!' символ как разделитель.

token = strtok(str,'!')
token = 
"A horse"

Создайте массив строк. Начиная в R2017a, можно создать строки с помощью двойных кавычек.

str = ["all in good time";
       "my dog has fleas";
       "leave no stone unturned"]
str = 3x1 string array
    "all in good time"
    "my dog has fleas"
    "leave no stone unturned"

Возвратите лексемы в массиве строк и возвратите оставшийся текст во втором массиве строк.

[token,remain] = strtok(str)
token = 3x1 string array
    "all"
    "my"
    "leave"

remain = 3x1 string array
    " in good time"
    " dog has fleas"
    " no stone unturned"

Создайте строку, которая содержит демонстрационный код HTML. Разломайте его на сегменты, разграниченные < и > 'characters'. Сохраните сегменты в массиве строк.

Начиная в R2017a, можно создать строки с помощью двойных кавычек. Чтобы конкатенировать несколько строк в одну строку, используйте plus оператор +.

str = "<ul class=continued><li class=continued>" + ...
      "<pre><a name=""13474""></a>token = strtok" + ...
      "(str,delimiter)<a name=""13475""></a>" + ...
      "token = strtok(str)"
str = 
"<ul class=continued><li class=continued><pre><a name="13474"></a>token = strtok(str,delimiter)<a name="13475"></a>token = strtok(str)"

Создайте массив пустой строки, чтобы содержать сегменты кода.

segments = strings(0)
segments = 

  0x0 empty string array

Повредите str в сегменты. Запишите while цикл, который неоднократно вызывает strtok на остающемся тексте HTML. while цикл выходит, когда больше нет текста, чтобы проанализировать.

remain = str;
while (remain ~= "")
   [token,remain] = strtok(remain, '<>');
   segments = [segments ; token];
end

Отобразите сегменты кода.

segments
segments = 9x1 string array
    "ul class=continued"
    "li class=continued"
    "pre"
    "a name="13474""
    "/a"
    "token = strtok(str,delimiter)"
    "a name="13475""
    "/a"
    "token = strtok(str)"

Входные параметры

свернуть все

Введите текст, заданный как массив строк, вектор символов или массив ячеек из символьных векторов.

Типы данных: string | char | cell

Символы-разделители, заданные как массив строк, вектор символов или массив ячеек из символьных векторов. Поскольку strtok отдельные символы обработок как разделители, delimiters может быть любой размер и может содержать символы в любом порядке.

Пример: strtok(str,{'YZ','X'}) обработки 'X'Y, и 'Z' как разделяют разделители. Это не обрабатывает 'YZ' как разделитель.

Типы данных: string | char | cell

Выходные аргументы

свернуть все

Выбранная часть текста, возвращенного как массив строк, вектор символов или массив ячеек из символьных векторов. token включает весь текст, запускающийся в первый символ, который не является разделителем и заканчивающийся в, но не включая, следующим разделителем. str и token совпадающий тип данных.

Типы данных: string | char | cell

Остаток от текста, возвращенного как массив строк, вектор символов или массив ячеек из символьных векторов. Если strtok находит разделитель в str, затем remain включает весь текст, запускающийся в, и включая, тот разделитель и заканчивающийся в конце текста. str и remain совпадающий тип данных.

Типы данных: string | char | cell

Советы

Не задавайте последовательность символа ESC как разделитель. strtok не переводит последовательности символа ESC. Вместо этого можно использовать char функция, чтобы задать такие символы. Например, чтобы задать вкладку как использование разделителя char(9) вместо '\t'.

Расширенные возможности

Представлено до R2006a