str_subset()
返回 string
的所有元素,其中至少有一个与 pattern
匹配的元素。它是 x[str_detect(x, pattern)]
的包装,相当于 grep(pattern, x, value = TRUE)
。
使用 str_extract()
查找每个字符串中匹配的位置。
参数
- string
-
输入向量。或者是一个字符向量,或者是可强制转换为一个的东西。
- pattern
-
要寻找的模式。
默认解释是正则表达式,如
vignette("regular-expressions")
中所述。使用regex()
可以更好地控制匹配行为。使用
fixed()
匹配固定字符串(即仅比较字节)。这很快,但是是近似值。一般来说,为了匹配人类文本,您需要coll()
,它尊重指定区域设置的字符匹配规则。将字符、单词、行和句子边界与
boundary()
匹配。空模式“”相当于boundary("character")
。 - negate
-
如果
TRUE
,则返回不匹配的元素。
也可以看看
grep()
带有参数 value = TRUE
、 stringi::stri_subset()
用于底层实现。
例子
fruit <- c("apple", "banana", "pear", "pineapple")
str_subset(fruit, "a")
#> [1] "apple" "banana" "pear" "pineapple"
str_subset(fruit, "^a")
#> [1] "apple"
str_subset(fruit, "a$")
#> [1] "banana"
str_subset(fruit, "b")
#> [1] "banana"
str_subset(fruit, "[aeiou]")
#> [1] "apple" "banana" "pear" "pineapple"
# Elements that don't match
str_subset(fruit, "^p", negate = TRUE)
#> [1] "apple" "banana"
# Missings never match
str_subset(c("a", NA, "b"), ".")
#> [1] "a" "b"
相关用法
- R stringr str_sub 使用子字符串的位置获取和设置子字符串
- R stringr str_split 将字符串分成几段
- R stringr str_starts 检测开始/结束时是否存在匹配
- R stringr str_which 查找匹配索引
- R stringr str_extract 提取完整的匹配项
- R stringr str_escape 转义正则表达式元字符
- R stringr str_trim 删除空格
- R stringr str_replace_na 把NA变成“NA”
- R stringr str_trunc 将字符串截断至最大宽度
- R stringr str_match 从匹配中提取组件(捕获组)
- R stringr str_like 以与 SQL 的 LIKE 运算符相同的方式检测模式
- R stringr str_length 计算长度/宽度
- R stringr str_detect 检测是否存在匹配
- R stringr str_count 计算匹配次数
- R stringr str_unique 删除重复的字符串
- R stringr str_remove 删除匹配的模式
- R stringr str_pad 将字符串填充到最小宽度
- R stringr str_equal 判断两个字符串是否相等
- R stringr str_view 查看字符串和匹配项
- R stringr str_glue 用胶水插补
- R stringr str_conv 指定字符串的编码
- R stringr str_order 对字符向量进行排序、排名或排序
- R stringr str_c 将多个字符串连接成一个字符串
- R stringr str_wrap 将单词包装成格式良好的段落
- R stringr str_dup 复制字符串
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Find matching elements。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。