通过两个字符标记将字符串拆分为列

MrM*_*Bum 2 regex string r tidyr

所有,我搜索过,找不到如何做到这一点的答案.我对R比较新,并且之前没有使用常规表达式,但基本上我有一些数据放入这样的字段:

"#Route - 6 #Category - PARKING #Details - Parking issues#Result - MOVED ON #Vehicle Type - Mercedes "
Run Code Online (Sandbox Code Playgroud)

我基本上希望能够将字符串拆分为不同的元素,因此#之后的每个类别都有自己的列.

我尝试使用tidyr包并且最初尝试过:

string %>% separate(Description, into  =  c("Route","Details","Result","License No",
                        "Vehicle Desciption"),
                sep = "\n#", remove =F, extra =  "drop")
Run Code Online (Sandbox Code Playgroud)

但实现我只想要" - "之后的数据.我尝试在代码中插入" - "但它不起作用.有谁知道如何在" - "和"#"之间理想地分割字符串.

非常感谢

Ale*_*tov 5

在一行中:

> gsub("^\\s+|\\s+$","",gsub(".*?[-]","",unlist(strsplit(str,"#"))))
[1] ""               "6"              "PARKING"        "Parking issues" "MOVED ON"       "Mercedes"  
Run Code Online (Sandbox Code Playgroud)

或者分开以便更好地理解:用"#"打破字符串:

a = unlist(strsplit(str,"#"))
Run Code Online (Sandbox Code Playgroud)

删除" - "之前的内容

b = gsub(".*?[-]","",a)
Run Code Online (Sandbox Code Playgroud)

删除前导和尾随空格:

gsub("^\\s+|\\s+$","",b)
Run Code Online (Sandbox Code Playgroud)