当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R stringr str_locate 查找比赛地点


str_locate() 返回第一个匹配的startend 位置; str_locate_all() 返回每个匹配的 startend 位置。

由于 startend 值包含在内,因此零长度匹配(例如 $^\\b )将具有小于 startend

用法

str_locate(string, pattern)

str_locate_all(string, pattern)

参数

string

输入向量。或者是一个字符向量,或者是可强制转换为一个的东西。

pattern

要寻找的模式。

默认解释是正则表达式,如 vignette("regular-expressions") 中所述。使用regex() 可以更好地控制匹配行为。

使用 fixed() 匹配固定字符串(即仅比较字节)。这很快,但是是近似值。一般来说,为了匹配人类文本,您需要coll(),它尊重指定区域设置的字符匹配规则。

将字符、单词、行和句子边界与 boundary() 匹配。空模式“”相当于 boundary("character")

  • str_locate() 对于 string 的每个元素返回一个两列一行的整数矩阵。第一列 start 给出比赛开始的位置,第二列 end 给出比赛结束的位置。

  • str_locate_all() 返回与 string /pattern 长度相同的整数矩阵列表。该矩阵具有如上所述的列 startend,并且每个匹配对应一行。

也可以看看

str_extract() 用于提取匹配的便捷方法,stringi::stri_locate() 用于底层实现。

例子

fruit <- c("apple", "banana", "pear", "pineapple")
str_locate(fruit, "$")
#>      start end
#> [1,]     6   5
#> [2,]     7   6
#> [3,]     5   4
#> [4,]    10   9
str_locate(fruit, "a")
#>      start end
#> [1,]     1   1
#> [2,]     2   2
#> [3,]     3   3
#> [4,]     5   5
str_locate(fruit, "e")
#>      start end
#> [1,]     5   5
#> [2,]    NA  NA
#> [3,]     2   2
#> [4,]     4   4
str_locate(fruit, c("a", "b", "p", "p"))
#>      start end
#> [1,]     1   1
#> [2,]     1   1
#> [3,]     1   1
#> [4,]     1   1

str_locate_all(fruit, "a")
#> [[1]]
#>      start end
#> [1,]     1   1
#> 
#> [[2]]
#>      start end
#> [1,]     2   2
#> [2,]     4   4
#> [3,]     6   6
#> 
#> [[3]]
#>      start end
#> [1,]     3   3
#> 
#> [[4]]
#>      start end
#> [1,]     5   5
#> 
str_locate_all(fruit, "e")
#> [[1]]
#>      start end
#> [1,]     5   5
#> 
#> [[2]]
#>      start end
#> 
#> [[3]]
#>      start end
#> [1,]     2   2
#> 
#> [[4]]
#>      start end
#> [1,]     4   4
#> [2,]     9   9
#> 
str_locate_all(fruit, c("a", "b", "p", "p"))
#> [[1]]
#>      start end
#> [1,]     1   1
#> 
#> [[2]]
#>      start end
#> [1,]     1   1
#> 
#> [[3]]
#>      start end
#> [1,]     1   1
#> 
#> [[4]]
#>      start end
#> [1,]     1   1
#> [2,]     6   6
#> [3,]     7   7
#> 

# Find location of every character
str_locate_all(fruit, "")
#> [[1]]
#>      start end
#> [1,]     1   1
#> [2,]     2   2
#> [3,]     3   3
#> [4,]     4   4
#> [5,]     5   5
#> 
#> [[2]]
#>      start end
#> [1,]     1   1
#> [2,]     2   2
#> [3,]     3   3
#> [4,]     4   4
#> [5,]     5   5
#> [6,]     6   6
#> 
#> [[3]]
#>      start end
#> [1,]     1   1
#> [2,]     2   2
#> [3,]     3   3
#> [4,]     4   4
#> 
#> [[4]]
#>       start end
#>  [1,]     1   1
#>  [2,]     2   2
#>  [3,]     3   3
#>  [4,]     4   4
#>  [5,]     5   5
#>  [6,]     6   6
#>  [7,]     7   7
#>  [8,]     8   8
#>  [9,]     9   9
#> 
源代码:R/locate.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Find location of match。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。