本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

strfind

在其他字符串中查找字符串

说明

示例

k = strfind(str,pattern)str 中搜索出现的 pattern。输出 k 指示 str 中每次出现的 pattern 的起始索引。如果未找到 pattern,则 strfind 返回一个空数组 []strfind 函数执行区分大小写的搜索。

  • 如果 str 是字符向量或字符串标量,则 strfind 返回 double 类型的向量。

  • 如果 str 是字符向量元胞数组或字符串数组,则 strfind 返回 double 类型的向量元胞数组。

示例

cellOutput 为 true 时,即使 str 是字符向量,k = strfind(str,pattern,'ForceCellOutput',cellOutput) 也会强制 strfind 以元胞数组形式返回 k

示例

全部折叠

在字符向量中查找多次出现的模式的起始索引。

首先,创建一个字符向量。

str = 'Find the starting indices of a pattern in a character vector';

查找模式 in

k = strfind(str,'in')
k = 1×4

     2    15    19    40

该模式在 str 中出现四次。

查找模式 In

k = strfind(str,'In')
k =

     []

由于 strfind 区分大小写,未找到模式。k 是一个空数组。

str 中查找空白。

k = strfind(str,' ')
k = 1×10

     5     9    18    26    29    31    39    42    44    54

str 中有十处空白。

在字符向量元胞数组中查找模式出现处的起始索引。

创建字符向量元胞数组。

str = {'How much wood would a woodchuck chuck';
       'if a woodchuck could chuck wood?'};

str 中查找模式 wood

idx = strfind(str,'wood')
idx=2×1 cell
    {1x2 double}
    {1x2 double}

检查输出元胞数组以查找该模式的实例。

idx{:,:}
ans = 1×2

    10    23

ans = 1×2

     6    28

模式 wood 在第一个字符向量的索引 10 和 23 处出现,在第二个字符向量的索引 6 和 28 处出现。

在字符向量中查找模式的所有出现处。强制 strfind 以元胞数组形式返回这些出现处的索引。然后显示这些索引。

创建一个字符向量并查找 ain 模式的所有出现处。

str = 'The rain in Spain.';
k = strfind(str,'ain','ForceCellOutput',true)
k = 1x1 cell array
    {1x2 double}

strfind 返回一个包含数值数组的标量元胞,该数值数组包含模式 ainstr 中的所有出现处的索引。要访问元胞中的数值数组,请使用花括号。

k{1}
ans = 1×2

     6    15

输入参数

全部折叠

要搜索的数据,指定为字符向量、字符向量元胞数组或字符串数组。

数据类型: char | cell | string

搜索模式,指定为字符向量或字符串标量。

数据类型: char | string

指示是否强制以元胞数组形式返回输出的指示符,指定为 falsetrue01

数据类型: logical

输出参数

全部折叠

出现的 pattern 的索引,以数组的形式返回。如果未找到 pattern,则 k 是一个空数组 []

  • 如果 str 是字符向量或字符串标量,则 k 是双精度向量,表示出现的每个 pattern 的索引。

  • 如果 str 是字符向量元胞数组或字符串数组,则 k 是元胞数组。对于 str 中的每部分文本,k 的对应元胞中都包含一个双精度向量,表示出现的每个 pattern 的索引。

提示

  • 如果 pattern 是不包含任何字符的字符向量或字符串标量(''""),则 strfind 将返回一个空数组。

  • 从 R2016b 开始,建议使用 contains 函数在字符串数组中查找模式。

扩展功能

在 R2006a 之前推出