Remove square brackets from a string vector

40,377

Solution 1

You could gsub out the brackets like so:

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

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

Solution 2

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)

Solution 3

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.

Solution 4

If working within tidyverse:

library(tidyverse); library(stringr)

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

n %>% str_replace_all("\\[|\\]", "")
[1] "Dave" "Tony" "Sara"
Share:
40,377
ATMathew
Author by

ATMathew

Updated on December 12, 2020

Comments

  • ATMathew
    ATMathew over 3 years

    I have a character vector in which each element is enclosed in brackets. I want 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?

  • zx8754
    zx8754 over 5 years
    @boulder_ruby it is input character vector.
  • boulder_ruby
    boulder_ruby over 5 years
    @zx8754 6 years later! Yes, I agree, it is a variable. July 2012 I was just getting started learning ruby (and later, rails) at the davinci coding boot camp in Louisville, CO just outside of Boulder. The inaugural class! Wonder what those guys are doing now...
  • zx8754
    zx8754 over 5 years
    @boulder_ruby sorry, my reply was mainly to other users having the same question, no offence.