基于多个特殊字符的分割字符串

时间:2019-03-21 18:40:31

标签: r string dataframe substring

下面是我拥有的字符串,该字符串使用四个(@ # &)不同的特殊字符组合在一起。我想使用每个特殊字符提取特殊字符之间的值/变量。

输入字符串

data <- "Vdm@FVDDM_HL#OV_L&28000016"

我要使用@ # &提取字符VdmFVDDM_HLOV_L28000016。我可以使用sub(".*&", "", data),但它只能在最后一个字符值(即28000016)上更好地工作。此后,如果我使用sub(".*#", "", data),则它将同时提取OV_L28000016,但我只需要OV_L

在某些情况下,输入字符串也像下面这样,其中两个特殊字符在一起# and &,但是我仍然想在blank之间提取# and &

data <- "Vdm@FVDDM_HL#&28000016"

是否有更好的方法使用sub()在特殊字符之前,之后或之间提取值? 我不想一次提取一个值。

1 个答案:

答案 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 +将匹配至少一个字符