R Stringer使用子集

问题描述

在使用stringr包的R中,如何使用str_subset在单词中仅出现三个字母?

示例-单词中的字母“ a”三遍

结果-香蕉和加拿大

解决方法

这将为您提供所有单词,其中至少一个字母正好出现3次:

library(tidyverse)

vec <- "banana and Canada"
words <- vec %>% str_split(" ") %>% .[[1]] 
  
lgl_vec <- words %>% map_lgl(
  ~str_split(.x,"") %>% 
    .[[1]] %>% 
    factor() %>% 
    summary() %>%
    "=="(3) %>%
    any()
  )

words[lgl_vec]

[1] "banana" "Canada"
,

使用str_extract_all

input <- c("apple","banana","Canada")
regex <- "\\b[^\\WAa]*[Aa][^\\WAa]*[Aa][^\\WAa]*[Aa][^\\WAa]*\\b"
matches <- str_extract_all(input,regex)

Demo

,
    final Criteria criteria = Criteria.where("_id").is(testPlanInfo.getId());

    final TestPlan testPlan = MongodbUtils.findOne(criteria,TestPlan.class);
    if (testPlan == null) {
        throw new CustomException("testplan.unknownTestPlan");
    }

reprex package(v0.3.0)于2020-09-02创建