目录
contains函数的功能是确定字符串中是否有模式。
语法
TF = contains(str,pat)
TF = contains(str,pat,'IgnoreCase',true)
说明
如果 str 包含指定的模式,TF = contains(str,pat) 将返回 1 (true),否则返回 0 (false)。
如果 pat 是一个包含多个模式的数组,则当 contains 在 str 中发现任何 pat 元素时,它将返回 1。
如果 str 是字符串数组或元胞数组,则 TF 是与 str 具有相同大小的逻辑数组。
TF = contains(str,pat,'IgnoreCase',true) 在确定 str 是否包含 pat 时将忽略大小写。
示例
查找文本
创建一个由人名组成的字符串数组,其中一些人名包含 Paul。可以使用双引号创建字符串。
str = ["Mary Ann Jones","Paul Jay Burns","John Paul Smith"]
str = 1x3 string
"Mary Ann Jones" "Paul Jay Burns" "John Paul Smith"
返回一个逻辑数组,其中等于 1 的每个元素的位置对应于 str 中包含 Paul 的字符串的位置。
pat = "Paul";
TF = contains(str,pat)
TF = 1x3 logical array
0 1 1
显示包含 Paul 的字符串。使用 TF 重新索引 str。
str(TF)
ans = 1x2 string
"Paul Jay Burns" "John Paul Smith"
使用模式进行搜索
创建一个包含地址的字符串数组(自 R2020b 开始提供)。
str = ["221B Baker St.","Tour Eiffel Champ de Mars","4059 Mt Lee Dr."]
str = 1x3 string
"221B Baker St." "Tour Eiffel Champ de Mars" "4059 Mt Lee Dr."
要查找包含数字的地址,请使用 digitsPattern 函数创建一个匹配任意位数字的模式。
pat = digitsPattern
pat = pattern
Matching:
digitsPattern
返回一个逻辑数组,指示哪些字符串包含数字。显示匹配的字符串。
TF = contains(str,pat)
TF = 1x3 logical array
1 0 1
str(TF)
ans = 1x2 string
"221B Baker St." "4059 Mt Lee Dr."
搜索包含一序列数字且后跟一个字母的字符串。可以通过组合简单模式来构建更复杂的模式。
pat = digitsPattern + lettersPattern(1)
pat = pattern
Matching:
digitsPattern + lettersPattern(1)
TF = contains(str,pat);
str(TF)
ans =
"221B Baker St."
匹配列表中的任何文本
创建一个由人名组成的字符串数组,其中一些人名包含 Ann 或 Paul。
str = ["Mary Ann Jones","Christopher Matthew Burns","John Paul Smith"]
str = 1x3 string
"Mary Ann Jones" "Christopher Matthew Burns" "John Paul Smith"
查找 str 中包含 Ann 或 Paul 的元素。
pat = ["Ann","Paul"];
TF = contains(str,pat)
TF = 1x3 logical array
1 0 1
使用 TF 重新索引 str。
str(TF)
ans = 1x2 string
"Mary Ann Jones" "John Paul Smith"
忽略大小写
创建一个包含名字的字符串数组。确定哪些名称包含 anne,忽略大小写。可以使用双引号创建字符串。
str = ["Anne","Elizabeth","Marianne","Tracy"]
str = 1x4 string
"Anne" "Elizabeth" "Marianne" "Tracy"
pat = "anne";
TF = contains(str,pat,'IgnoreCase',true)
TF = 1x4 logical array
1 0 1 0
显示包含 anne 的字符串。使用 TF 重新索引 str。
str(TF)
ans = 1x2 string
"Anne" "Marianne"
确定字符向量中是否包含子字符串
创建包含食品列表的字符向量。确定字符向量中是否包含不同食品的名称。
chr = 'peppers, onions, and mushrooms';
TF = contains(chr,'onion')
TF = logical
1
TF = contains(chr,'pineapples')
TF = logical
0
参数说明
str — 输入文本
输入文本,指定为字符串数组、字符向量或字符向量元胞数组。
pat — 搜索模式
搜索模式,指定为下列值之一:
-
字符串数组
-
字符向量
-
字符向量元胞数组
-
pattern数组(自 R2020b 开始提供)