exponenta event banner

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. 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