开发者

Remove square brackets from a string vector

I have a character vector in which each element is enclosed in brackets. I w开发者_高级运维ant to remove the brackets and just have the string.

So I tried:

n = c("[Dave]", "[Tony]", "[Sara]")

paste("", n, "", sep="")

Unfortunately, this doesn't work for some reason.

I've performed the same task before using this same code, and am not sure why it's not working this time.

I want to go from '[Dave]' to 'Dave'.

What am I doing wrong?


You could gsub out the brackets like so:

n = c("[Dave]", "[Tony]", "[Sara]")

gsub("\\[|\\]", "", n)
[1] "Dave" "Tony" "Sara"


A regular expression substitution will do it. Look at the gsub() function.

This gives you what you want (it removes any instance of '[' or ']'):

gsub("\\[|\\]", "", n)


The other answers should be enough to get your desired output. I just wanted to provide a brief explanation of why what you tried didn't work.

paste concatenates character strings. If you paste an empty character string, "", to something with a separator that is also an empty character string, you really haven't altered anything. So paste can't make a character string shorter; the result will either be the same (as in your example) or longer.


If working within tidyverse:

library(tidyverse); library(stringr)

n = c("[Dave]", "[Tony]", "[Sara]")

n %>% str_replace_all("\\[|\\]", "")
[1] "Dave" "Tony" "Sara"
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜