目录
isstrprop函数的功能是确定输入字符串中的哪些字符属于指定类别。
语法
TF = isstrprop(str,category)
TF = isstrprop(str,category,'ForceCellOutput',tf)
说明
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
使用 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 — 输入数组
输入数组,指定为字符串数组、字符数组、字符向量元胞数组或数值数组。
如果 str 是数值数组,则 isstrprop 会将数字作为 Unicode® 字符代码处理。如果数字是双精度或单精度浮点数,则 isstrprop 在将它们解释为字符代码之前,会先将它们舍入到最接近的整数值。
category — 字符类别
字符类别,指定为字符向量或字符串标量。isstrprop 根据 Unicode 标准定义的类别对 str 中的字符进行分类。
类别 | 描述 |
---|---|
alpha | 字母。 |
alphanum | 字母或数字。 |
cntrl | 控制字符(例如 char(0:20))。 |
digit | 数字。 |
graphic | 图形字符。isstrprop 将除以下字符外的所有 Unicode 字符视为图形字符:
|
lower | 小写字母。 |
| 图形字符,加上 char(32)。 |
punct | 标点字符。 |
wspace | 空白字符。此范围除了包括 ANSI® C 定义的空白 {' ','\t','\n','\r','\v','\f'} 以外,还包括一些其他的 Unicode 字符。 |
upper | 大写字母。 |
xdigit | 有效的十六进制数字。 |
tf — True 或 false
True 或 false,指定为 1 或 0。
TF — True 或 false
True 或 false,以逻辑数组或逻辑向量元胞数组形式返回。
-
如果 str 是字符向量、字符串标量或数值数组,则 TF 是一个逻辑数组,指示有哪些字符属于指定的类别。
-
如果 str 是字符向量元胞数组或字符串数组,则 TF 是一个元胞数组。对于 str 中的每个元素,TF 中与之对应的元胞都会包含一个逻辑向量,指示此元素中的哪些字符属于指定的类别。
提示
除了一些其他的 Unicode 字符外,wspace 选项为其返回 true 的空白字符还包含制表符、换行符、垂直制表符、换页符、回车符和空格。要查看 wspace 选项为其返回 true 的所有字符,请输入以下命令,然后在 Unicode 参考中查找返回的十进制码:
find(isstrprop(char(1):char(intmax('uint16')),'wspace'))