當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。