[R] extracting text contained in brackets ("[ ... ]") from a character string?

Gabor Grothendieck ggrothendieck at gmail.com
Mon May 14 00:45:05 CEST 2007


If you know its of the form testdata[3] then this is sufficient

  x <- c("testdata[3]", "testdata[-4]", "testdata[-4g]")
  gsub(".*\\[|\\]", "", x)  # c("3", "-4", "-4g")

Here is a somewhat more general solution:

  library(gsubfn)
  x <- c("a[b]c[d]d", "[a]b")
  strapply(x, "\\[([^]]*)\\]", back = -1)   # list(c("b", "d"), "a")

On 5/13/07, new ruser <newruser at yahoo.com> wrote:
> I have a text string that contains text within two brackets.
>
> e.g. "testdata[3]" "testdata[-4]", "testdata[-4g]",
>
> I wish to "extract" the string enclosed in brackets?
>
> What is a good way to do this?
>
> e.g.
>
> fun(testdata[3]) = '3'
>
> fun(testdata[-4g]) = '-4g'
>
> ---------------------------------
> Moody friends. Drama queens. Your life? Nope! - their life, your story.
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list