我有以下字符串,我需要将模式提取到一个名为的单列数据框 SIZE
str <- "N · 0.1 [mm]: N · 0.1 + 0.02 [mm]: N · 0.1 + 0.05 [mm] N · 0.1 + 0.08 [mm] M · 1 [mm]: M · 1 + 0.5 [mm] M · 1 + 0.75 [mm]"
模式后跟:
或者whitespace
始终结束[mm]
我用来匹配我的模式的正则表达式是可行的,但我不确定如何提取匹配项以创建列作为数据框.
\S\W+\d\.?\d?\s\+?\s?\d?\.?\d?\d?\s?\[mm\]
预期输出:1列命名 SIZE
N · 0.1 [mm] N · 0.1 + 0.02 [mm] N · 0.1 + 0.05 [mm] N · 0.1 + 0.08 [mm] M · 1 [mm] M · 1 + 0.5 [mm] M · 1 + 0.75 [mm]
任何帮助赞赏.谢谢..
或许,strsplit
这会让事情变得更容易..
str <- "N · 0.1 [mm]: N · 0.1 + 0.02 [mm]: N · 0.1 + 0.05 [mm] N · 0.1 + 0.08 [mm] M · 1 [mm]: M · 1 + 0.5 [mm] M · 1 + 0.75 [mm]" vals <- strsplit(str, '(?<=\\])[\\s:]*', perl = T) data.frame(SIZE = unlist(vals))
产量
SIZE 1 N · 0.1 [mm] 2 N · 0.1 + 0.02 [mm] 3 N · 0.1 + 0.05 [mm] 4 N · 0.1 + 0.08 [mm] 5 M · 1 [mm] 6 M · 1 + 0.5 [mm] 7 M · 1 + 0.75 [mm]