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 ложь).

Примеры

свернуть все

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

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
    {[0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... ]}

Найдите индексы для знаков препинания в 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