针对以“pr”开头并跟随多个“r”的模式,例如
pr,prr,pr ... r
,我想分割非模式字符串和所有模式字符串,而不删除模式。 strsplit()
可以完成这项工作,但会删除所有的pr..r
。然而,stringr :: str_extract_all
提取了模式字符串,但去除了非模式字符串。
是否有一种简单的方法来保留所有字符串,但是单独挑选出模式字符串呢?
x<-c("zprzzzprrrrrzpzr")
"z" "pr" "zzz" "prrrrr" "zpzr" # desired output; keep original character order
strsplit(x, r'{(?=pr)|pr+\K}',perl=T)
? - MrFlickstrsplit(x, '(?=pr)|pr+\\K', perl=TRUE)
,看起来与演示不同。 - jay.sf