从字符串中删除括号
问题描述:
我有一个字符向量,其中每个元素都括在括号中。我想 删除括号,只是有字符串。从字符串中删除括号
所以,我想:
n = c("[Dave]", "[Tony]", "[Sara]")
paste("", n, "", sep="")
Unforunately,这并不出于某种原因。 在使用相同的代码之前,我已经执行了相同的任务,但我不确定这次为什么它不工作。我想从'[Dave]'
转到'Dave'
。
我在做什么错?
答
你可以GSUB出像这样的括号:
n = c("[Dave]", "[Tony]", "[Sara]")
gsub("\\[|\\]", "", n)
[1] "Dave" "Tony" "Sara"
答
正则表达式替换可以做到这一点。看看gsub()函数。
这给你想要的东西(它消除 '[' 或 ']' 的任何实例):
gsub("\\[|\\]", "", n)
+0
什么是 'N' 的呢? –
答
其他答案应该足以得到你想要的结果。我只想提供一个简单的解释,说明你为什么尝试不起作用。
paste
连接字符串。如果你paste
是一个空字符串,""
,对于一个分隔符也是一个空字符串的东西,你真的没有改变任何东西。所以paste
不能缩短字符串;结果将是相同的(如你的例子)或更长。
答
如果tidyverse内工作:
library(tidyverse); library(stringr)
n = c("[Dave]", "[Tony]", "[Sara]")
n %>% str_replace_all("\\[|\\]", "")
[1] "Dave" "Tony" "Sara"
我很好奇,为什么你的'paste'命令,在过去的 “工作” ... –