[R] how to match exact phrase using gsub (or similar function)

William Dunlap wdunlap at tibco.com
Wed Mar 28 22:34:38 CEST 2012


You can use the \< and \> patterns (backslashing the backslashes) to
mean start and end of "word", respectively.  E.g.,

  > addresses <- c("S S Main St & Interstate 95", "3421 BIGS St")
  > gsub("\\<S S\\>", "S", addresses)
  [1] "S Main St & Interstate 95" "3421 BIGS St"            

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Justin Haynes
> Sent: Wednesday, March 28, 2012 1:24 PM
> To: Markus Weisner
> Cc: r-help at r-project.org
> Subject: Re: [R] how to match exact phrase using gsub (or similar function)
> 
> In most regexs the carrot( ^ ) signifies the start of a line and the
> dollar sign ( $ ) signifies the end.
> 
> gsub('^S S', 'S', a)
> 
> gsub('^S S', 'S', '3421 BIGS St')
> 
> you can use logical or inside your pattern too:
> 
> gsub('^S S|S S$| S S ', 'S', a)
> 
> the " S S " condition is difficult.
> 
> gsub('^S S|S S$| S S ', 'S', 'foo S S bar')
> 
> gives the wrong output. as does:
> 
> gsub('^S S | S S$| S S ', ' S ', 'foo S S bar')
> gsub('^S S | S S$| S S ', ' S ', a)
> 
> 
> so you might have to catch that with a second gsub.
> 
> gsub(' S S ', ' S ', 'foo S S bar')
> 
> 
> On Wed, Mar 28, 2012 at 12:32 PM, Markus Weisner <r at themarkus.com> wrote:
> > trying to switch out addresses that have double directions, such as the
> > following example:
> >
> > a = "S S Main St & Interstate 95"
> >
> > a = gsub(pattern="S S ", replacement="S ", a)
> >
> >
> > . the problem is that I don't want to affect instances where this might be
> > a correct address such as the following:
> >
> >
> > "3421 BIGS St"
> >
> >
> > what I want to say is switch out only if this is either of the following
> > situations
> >
> >
> > [beginning of char]S S"
> >
> > " S S "
> >
> > "S S[end of char]
> >
> >
> > Is there anyway of making gsub or a similar function make the replacements
> > I want?  Thanks in advance for your help.
> >
> >
> > ~Markus
> >
> >        [[alternative HTML version deleted]]
> >
> >
> > ______________________________________________
> > 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.
> >
> 
> ______________________________________________
> 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.



More information about the R-help mailing list