Replace the + (i.e. 1 or more) in the pattern with a * (i.e. 0 or more): x <- "pmin(pmax(pmin(a,B),pmin(a,C,d))==Y,pmax(E,e))"
gsub("(\\b[a-oq-z][a-z0-9]*)", "1-\\U\\1", x, perl = TRUE) giving: [1] "pmin(pmax(pmin(1-A,B),pmin(1-A,C,1-D))==Y,pmax(E,1-E))" Here is a visualization of the regular expression: https://www.debuggex.com/i/5ByOCQS2zIdPEf-f.png On Sat, Feb 28, 2015 at 8:16 AM, Alrik Thiem <alrik.th...@gmail.com> wrote: > Dear Gabor, > > Many thanks. Works like a charm, but I can't get it to work with > > "pmin(pmax(pmin(a,B),pmin(a,C,d))==Y,pmax(E,e))" > > i.e., with strings where there're no integers following the components in the > pmin/pmax functions. Could this be generalized to handle both cases? > > Best wishes, > Alrik > > -----Ursprüngliche Nachricht----- > Von: Gabor Grothendieck [mailto:ggrothendi...@gmail.com] > Gesendet: Samstag, 28. Februar 2015 13:35 > An: Alrik Thiem > Cc: r-help@r-project.org > Betreff: Re: [R] Substring replacement in string > > On Fri, Feb 27, 2015 at 5:19 PM, Alrik Thiem <alrik.th...@gmail.com> wrote: >> I would like to replace all lower-case letters in a string that are not part >> of certain fixed expressions. For example, I have the string: >> >> "pmin(pmax(pmin(x1, X2), pmin(X3, X4)) == Y, pmax(Z1, z1))" >> >> Where I would like to replace all lower-case letters that do not belong to >> the functions "pmin" and "pmax" by 1 - toupper(...) to get >> >> "pmin(pmax(pmin(1 - X1, X2), pmin(X3, X4)) == Y, pmax(Z1, 1 - Z1))" >> > > Assuming x is the input string: > > gsub("(\\b[a-oq-z][a-z0-9]+)", "1-\\U\\1", x, perl = TRUE) > ## [1] "pmin(pmax(pmin(1-X1, X2), pmin(X3, X4)) == Y, pmax(Z1, 1-Z1))" > > > > -- > Statistics & Software Consulting > GKX Group, GKX Associates Inc. > tel: 1-877-GKX-GROUP > email: ggrothendieck at gmail.com > -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.