Main Content

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)tf1 (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

使用 TF 查找 chr 中字母的索引。

idx = find(TF)
idx = 1×11

     5     6     7     8     9    11    12    13    14    15    16

chr(idx)
ans = 
'MapleStreet'

创建字符串数组。然后,使用 isstrprop 函数确定各个字符的所属类别。

创建字符串标量,并确定哪些字符是数字。

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

使用 TF{1} 查找 chr 中的标点符号的索引。

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 根据 Unicode 标准定义的类别对 str 中的字符进行分类。

类别

描述

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,指定为 10

输出参数

全部折叠

True 或 false,以逻辑数组或逻辑向量元胞数组形式返回。

  • 如果 str 是字符向量、字符串标量或数值数组,则 TF 是一个逻辑数组,指示有哪些字符属于指定的类别。

  • 如果 str 是字符向量元胞数组或字符串数组,则 TF 是一个元胞数组。对于 str 中的每个元素,TF 中与之对应的元胞都会包含一个逻辑向量,指示此元素中的哪些字符属于指定的类别。

提示

除了一些其他的 Unicode 字符外,wspace 选项为其返回 true 的空白字符还包含制表符、换行符、垂直制表符、换页符、回车符和空格。要查看 wspace 选项为其返回 true 的所有字符,请输入以下命令,然后在 Unicode 参考中查找返回的十进制码:

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

扩展功能

版本历史记录

在 R2006a 之前推出