假設我有一個字串:
StringA/StringB/StringC
有什么方法可以按/符號拆分此字串,但將其保留在回傳值中:
StringA
/StringB
/StringC
uj5u.com熱心網友回復:
是的,展望未來:(?=/)
library(stringr)
str_split(str, "(?=/)")
#[[1]]
#[1] "StringA" "/StringB" "/StringC"
tidyr與分離功能同樣有效:
tidyr::separate_rows(data.frame(str), str, sep = "(?=/)")
# str
#1 StringA
#2 /StringB
#3 /StringC
使用 base R's strsplit,前瞻就不那么簡單了,但這很好用:
unlist(strsplit(str, "(?<=.)(?=[/])", perl = TRUE))
#[1] "StringA" "/StringB" "/StringC"
反過來:
unlist(strsplit(str, "(?<=/)", perl = TRUE))
#[1] "StringA/" "StringB/" "StringC"
uj5u.com熱心網友回復:
您可以嘗試scan gsub如下所示
> scan(text = gsub("/", " /", "StringA/StringB/StringC"), what = "")
Read 3 items
[1] "StringA" "/StringB" "/StringC"
uj5u.com熱心網友回復:
和str_extract
library(stringr)
str_extract_all(str1, "/?[^/] ")[[1]]
[1] "StringA" "/StringB" "/StringC"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/526544.html
