下面是我拥有的字符串,该字符串使用四个(@ # &
)不同的特殊字符组合在一起。我想使用每个特殊字符提取特殊字符之间的值/变量。
输入字符串
data <- "Vdm@FVDDM_HL#OV_L&28000016"
我要使用@ # &
提取字符Vdm
,FVDDM_HL
,OV_L
和28000016
。我可以使用sub(".*&", "", data)
,但它只能在最后一个字符值(即28000016
)上更好地工作。此后,如果我使用sub(".*#", "", data)
,则它将同时提取OV_L
和28000016
,但我只需要OV_L
。
在某些情况下,输入字符串也像下面这样,其中两个特殊字符在一起# and &
,但是我仍然想在blank
之间提取# and &
。
data <- "Vdm@FVDDM_HL#&28000016"
是否有更好的方法使用sub()
在特殊字符之前,之后或之间提取值? 我不想一次提取一个值。
答案 0 :(得分:1)
您可以使用strsplit
> unlist(strsplit("Vdm@FVDDM_HL#OV_L&28000016", "\\W+"))
[1] "Vdm" "FVDDM_HL" "OV_L" "28000016"
> unlist(strsplit("Vdm@FVDDM_HL#&28000016", "\\W+"))
[1] "Vdm" "FVDDM_HL" "28000016"
\ W +将匹配至少一个字符