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
    "all in good time"
    "my dog has fleas"
    "leave no stone unturned"

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

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

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

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

Начиная с 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. The while цикл выходит, когда больше нет текста для анализа.

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

Отображение сегментов кода.

segments
segments = 9x1 string
    "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

Совет

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

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

.
Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте