isstrprop

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

Описание

пример

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