isstrprop

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

Синтаксис

TF = isstrprop(str,category)
TF = isstrprop(str,category,'ForceCellOutput',tf)

Описание

пример

TF = isstrprop(str,category) определяет, имеют ли символы во входном тексте заданную категорию, такую как буквы, числа или пробел. Например, isstrprop('ABC123','alpha') возвращает 1-by-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 array
    "123 Maple St."
    "456 Oak St."

TF = isstrprop(str,'wspace')
TF = 2x1 cell array
    {1x13 logical}
    {1x11 logical}

Отобразить результаты для второй строки, 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 array
    {'123 Maple St.'}
    {'456 Oak St.'  }

TF = isstrprop(C,'wspace')
TF = 2x1 cell array
    {1x13 logical}
    {1x11 logical}

Найдите символы пунктуации в векторе символов. 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 обрабатывает все символы Unicode как графические символы, за исключением следующего:

  • Неприсвоенные символы

  • Пробельные символы

  • Разделитель строки

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

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

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

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

lower

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

print

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

punct

Символы пунктуации.

wspace

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

upper

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

xdigit

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

TRUE или FALSE, заданный как 1 или 0.

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

свернуть все

TRUE или FALSE, возвращенный как логический массив или массив ячеек логических векторов.

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

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

Советы

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

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

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

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