我希望拆分一个通用形式的字符串,其中方括号表示字符串的“部分”。前任:
x <- "[a] + [bc] + 1"
并返回一个如下所示的字符向量:
"[a]" " + " "[bc]" " + 1"
编辑:最终使用了这个:
x <- "[a] + [bc] + 1"
x <- gsub("\\[",",[",x)
x <- gsub("\\]","],",x)
strsplit(x,",")
最佳答案
我看过 TylerRinker 的代码并怀疑它可能比这更清楚,但这可能是学习不同功能集的方式。 (在我注意到它在空格上 split 之前,我更喜欢他。)我尝试将其调整为与 strsplit
一起使用。但该功能总是删除分隔符。
也许这可以用来制作 newstrsplit
在分隔符处 split 但将它们留在里面?可能不需要在第一个或最后一个位置拆分并区分打开和关闭分隔符。
scan(text= # use scan to separate after insertion of commas
gsub("\\]", "],", # put commas in after "]"'s
gsub(".\\[", ",[", x)) , # add commas before "[" unless at first position
what="", sep=",") # tell scan this character argument and separators are ","
#Read 4 items
#[1] "[a]" " +" "[bc]" " + 1"
关于regex - 使用正则表达式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573887/