MATLAB中matches函数用法
目录
语法
说明
示例
匹配文本
使用模式匹配十六进制数
匹配多个字符串
忽略大小写
matches函数的功能是确定模式是否与字符串匹配。
语法
TF = matches(str,pat)
TF = matches(str,pat,IgnoreCase=true)
说明
TF = matches(str,pat) 会在指定模式与 str 有匹配时返回 1 (true),否则返回 0 (false)。如果 str 是数组,则 TF 是相同大小的数组。
如果 pat 是包含多个模式的数组,则 matches 在发现 pat 中任一元素与 str 有匹配时将返回 1。
TF = matches(str,pat,IgnoreCase=true) 在确定 pat 是否与 str 有匹配时忽略大小写。
示例
匹配文本
创建一个字符串数组。
str = ["Mercury","Venus","Earth","Mars"]
str = 1x4 string
"Mercury" "Venus" "Earth" "Mars"
查找匹配 "Earth" 的字符串。返回一个逻辑数组,其中每个元素 1 的位置对应于 str 中一个匹配字符串的位置。
TF = matches(str,"Earth")
TF = 1x4 logical array
0 0 1 0
使用 TF 再次对 str 进行索引,以显示匹配项。
str(TF)
ans =
"Earth"
使用模式匹配十六进制数
创建一个表示数字的字符串数组。有些数是具有 0x 前缀的十六进制数。
str = ["137","0xA7B","0x1248","72","0xG7"]
str = 1x5 string
"137" "0xA7B" "0x1248" "72" "0xG7"
创建一个匹配十六进制数字的模式。要匹配单个十六进制数字,请指定一个模式,该模式匹配任意数字、任意大写字母 A-F 或任意小写字母 a-f。然后,指定一个模式,该模式以 0x 开头并后跟任意数量的十六进制数字。
pat = digitsPattern(1) | characterListPattern("A","F") | characterListPattern("a","f");
pat = "0x" + asManyOfPattern(pat)
pat = pattern
Matching:
"0x" + asManyOfPattern(digitsPattern(1) | characterListPattern("A","F") | characterListPattern("a","f"))
查找匹配的 str 元素。(最后一个元素不匹配,因为它包含错误:G 不是一个十六进制数字。)
TF = matches(str,pat)
TF = 1x5 logical array
0 1 1 0 0
要显示匹配项,请使用 TF 对 str 进行索引。
str(TF)
ans = 1x2 string
"0xA7B" "0x1248"
匹配多个字符串
创建一个字符串数组。
str = ["Mercury","Venus","Earth","Mars"]
str = 1x4 string
"Mercury" "Venus" "Earth" "Mars"
查找匹配 "Venus" 或 "Earth" 的 str 元素。
TF = matches(str,["Venus","Earth"])
TF = 1x4 logical array
0 1 1 0
使用 TF 对 str 进行索引,以显示匹配项。
str(TF)
ans = 1x2 string
"Venus" "Earth"
忽略大小写
创建一个字符串数组。
str = ["Mercury","Venus","Earth","Mars"]
str = 1x4 string
"Mercury" "Venus" "Earth" "Mars"
查找与 "earth" 匹配的 str 元素,忽略大小写。
TF = matches(str,"earth",IgnoreCase=true)
TF = 1x4 logical array
0 0 1 0
显示匹配的字符串。
str(TF)
ans =
"Earth"
参数说明
str — 输入文本
输入文本,指定为字符串数组、字符向量或字符向量元胞数组。
pat — 搜索模式
搜索模式,指定为下列值之一:
-
字符串数组
-
字符向量
-
字符向量元胞数组
-
pattern 数组(自 R2020b 开始提供)