[R] Regular expression to find value between brackets

Bert Gunter gunter.berton at gene.com
Wed Oct 13 20:45:46 CEST 2010


One way:

gsub(".*\\(([^()]*)\\).*", "\\1",tests)

Idea: Pick out the units designation between the "()" and replace the
whole expression with it. The "\\1" refers to the "[^()]*
parenthesized expression in the middle that picks out the units.

Cheers,
Bert


On Wed, Oct 13, 2010 at 11:16 AM, Bart Joosen <bartjoosen at hotmail.com> wrote:
>
> Hi,
>
> this should be an easy one, but I can't figure it out.
> I have a vector of tests, with their units between brackets (if they have
> units).
> eg tests <- c("pH", "Assay (%)", "Impurity A(%)", "content (mg/ml)")
>
> Now I would like to hava a function where I use a test as input, and which
> returns the units
> like:
> f <- function (x) sub("\\)", "", sub("\\(", "",sub("[[:alnum:]]+","",x)))
> this should give "", "%", "%", "mg/ml", but it doesn't do the job quit well.
>
> After searching in the manual, and on the help lists, I cant find the
> answer.
>
> anyone?
>
> Bart
> --
> View this message in context: http://r.789695.n4.nabble.com/Regular-expression-to-find-value-between-brackets-tp2994166p2994166.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org 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.
>



-- 
Bert Gunter
Genentech Nonclinical Biostatistics



More information about the R-help mailing list