exponenta event banner

isstrprop

Определите, какие символы во входных строках относятся к указанной категории

Описание

пример

TF = isstrprop(str,category) определяет, относятся ли символы во входном тексте к указанной категории, например буквы, цифры или пробел. Например, isstrprop('ABC123','alpha') возвращает 1около-6 логический массив, [1 1 1 0 0 0], указывая, что первые три символа являются буквами.

  • Если str - символьный массив, строковый скаляр или числовой массив, затем isstrprop возвращает логический массив.

  • Если str является массивом ячеек символьных векторов или строковым массивом, то isstrprop возвращает массив ячеек логических векторов.

пример

TF = isstrprop(str,category,'ForceCellOutput',tf), где tf является 1 (true), возврат TF как массив ячеек, даже когда str - символьный массив, строковый скаляр или числовой массив. Значение по умолчанию для tf является 0 (false).

Примеры

свернуть все

Создайте вектор символов и определите, какие символы являются буквами.

chr = '123 Maple Street'
chr = 
'123 Maple Street'
TF = isstrprop(chr,'alpha')
TF = 1x16 logical array

   0   0   0   0   1   1   1   1   1   0   1   1   1   1   1   1

Поиск индексов для букв в chr использование TF.

idx = find(TF)
idx = 1×11

     5     6     7     8     9    11    12    13    14    15    16

chr(idx)
ans = 
'MapleStreet'

Создание массивов строк. Затем определите, какие символы относятся к различным категориям, используя isstrprop функция.

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

str = "123 Maple Street"
str = 
"123 Maple Street"
TF = isstrprop(str,'digit')
TF = 1x16 logical array

   1   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0

Создайте нескалярный строковый массив. Определите, какие символы в каждой строке являются пробелами. isstrprop возвращает массив ячеек, в котором каждая ячейка содержит результаты для строки в str.

str = ["123 Maple St.";"456 Oak St."]
str = 2x1 string
    "123 Maple St."
    "456 Oak St."

TF = isstrprop(str,'wspace')
TF=2×1 cell array
    {[0 0 0 1 0 0 0 0 0 1 0 0 0]}
    {[    0 0 0 1 0 0 0 1 0 0 0]}

Чтобы отобразить результаты для второй строки, str(2), проиндексировать в TF{2}.

TF{2}
ans = 1x11 logical array

   0   0   0   1   0   0   0   1   0   0   0

Создайте массив ячеек из векторов символов. Определите, какие символы являются пробелами.

C = {'123 Maple St.';'456 Oak St.'}
C = 2x1 cell
    {'123 Maple St.'}
    {'456 Oak St.'  }

TF = isstrprop(C,'wspace')
TF=2×1 cell array
    {[0 0 0 1 0 0 0 0 0 1 0 0 0]}
    {[    0 0 0 1 0 0 0 1 0 0 0]}

Поиск знаков препинания в символьном векторе. isstrprop возвращает логический вектор, указывающий, какие символы относятся к этой категории. Сила isstrprop возвращает логический вектор в массиве ячеек.

chr = 'A horse! A horse! My kingdom for a horse!'
chr = 
'A horse! A horse! My kingdom for a horse!'
TF = isstrprop(chr,'punct','ForceCellOutput',true)
TF = 1x1 cell array
    {1x41 logical}

Найти индексы знаков препинания в chr использование TF{1}.

find(TF{1})
ans = 1×3

     8    17    41

Создайте числовой массив. Определите, какие цифры соответствуют кодам символов для букв.

X = [77 65 84 76 65 66]
X = 1×6

    77    65    84    76    65    66

TF = isstrprop(X,'alpha')
TF = 1x6 logical array

   1   1   1   1   1   1

isstrprop идентифицирует все цифры как коды символов для букв. Преобразуйте числа в соответствующие символы с помощью char функция.

c = char(X)
c = 
'MATLAB'

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

свернуть все

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

Если str является числовым массивом, то isstrprop обрабатывает числа как коды символов Unicode ®. Если числа являются числами с плавающей запятой двойной или одинарной точности, тоisstrprop округляет их до ближайших целых значений, прежде чем интерпретировать их как коды символов.

Типы данных: string | char | cell | double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Категория символов, заданная как вектор символов или скаляр строки. isstrprop классифицирует символы в str согласно категориям, определенным стандартом Unicode.

Категория

Описание

alpha

Письма.

alphanum

Буквы или цифры.

cntrl

Управляющие символы (например, char(0:20)).

digit

Числовые цифры.

graphic

Графические символы. isstrprop рассматривает все символы Юникода как графические символы, за исключением следующих:

  • Неназначенные символы

  • Символы пробела

  • Разделитель линий

  • Разделитель абзацев

  • Управляющие символы

  • Частные пользовательские символы

  • Суррогатные символы

lower

Строчные буквы.

print

Графические символы, плюс char(32).

punct

Знаки препинания.

wspace

Символы пробела. Этот диапазон включает определение пробела ANSI ® C ,{' ','\t','\n','\r','\v','\f'}, в дополнение к некоторым другим символам Юникода.

upper

Прописные буквы.

xdigit

Допустимые шестнадцатеричные цифры.

True или false, указано как 1 или 0.

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

свернуть все

True или false, возвращается как логический массив или массив ячеек логических векторов.

  • Если str - символьный вектор, строковый скаляр или числовой массив, затем TF - логический массив, указывающий, какие символы относятся к указанной категории.

  • Если str является массивом ячеек символьных векторов или строковым массивом, то TF является массивом ячеек. Для каждого элемента str, соответствующая ячейка TF содержит логический вектор, указывающий, какие символы этого элемента принадлежат указанной категории.

Совет

Пробелы, для которых wspace возврат опции true включают табуляцию, линейный канал, вертикальную вкладку, канал формы, возврат каретки и пробел в дополнение к некоторым другим символам Юникода. Для просмотра всех символов, для которых wspace возврат опции trueвведите следующую команду и найдите возвращенные десятичные коды в ссылке Юникода:

find(isstrprop(char(1):char(intmax('uint16')),'wspace'))

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

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