我試圖獲取給定物件的所有“香蕉 單詞”出現,但 str_extract 只回傳第一次出現。我的代碼:
all_terms <- c("banana word2 word3 word4 banana split word2 word3 word4",
"x y z",
"banana ice cream")
banana_terms <- all_terms %>%
str_extract("banana. ") %>%
word(1,2)
banana_terms
Out: [1] "banana word2" NA "banana ice"
我想要什么:
Out: [1] "banana word2" "banana split", "banana ice"
uj5u.com熱心網友回復:
在banana(和banana)之后使用str_extract_alland來獲取單詞。\\w
all_terms %>%
str_extract_all("banana.\\w ") %>%
unlist()
# [1] "banana word2" "banana split" "banana ice"
沒有 unlist,你會得到一個串列:
str_extract_all(all_terms, "banana.\\w ")
[[1]]
[1] "banana word2" "banana split"
[[2]]
character(0)
[[3]]
[1] "banana ice"
uj5u.com熱心網友回復:
中base R,我們可以使用regmatches/gregexpr
unlist(regmatches(all_terms, gregexpr("banana\\s \\S ", all_terms)))
[1] "banana word2" "banana split" "banana ice"
uj5u.com熱心網友回復:
如果要使用str_extract,則需要確保每個“香蕉詞”都是向量中的單個元素。
str_split用于將每個“空白” “香蕉”模式 ( " (?=banana)") 拆分為單個元素。然后使用banana.\\w @Ma?l in 提供的正則運算式()str_extract。
NA最后,在向量中洗掉。
library(stringr)
all_banana <- str_extract(str_split(all_terms, " (?=banana)", simplify = T), "banana.\\w ")
all_banana <- all_banana[!is.na(all_banana)]
all_banana
[1] "banana word2" "banana ice" "banana split"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/458780.html
上一篇:Regexp回傳位置VBA
