[R] Escaping regular expressions

William Dunlap wdunlap at tibco.com
Fri Nov 13 20:01:19 CET 2009


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Hadley Wickham
> Sent: Friday, November 13, 2009 5:34 AM
> To: r-help
> Subject: [R] Escaping regular expressions
> 
> Hi all,
> 
> Is there a method for escaping strings to be used regular expressions?
>  i.e. if I have a user supplied string that I'd like to use as a fixed
> component is there a method that will turn (e.g.) ".$^" into
> "\\.\\$\\^" ?

I've used the following:
   asFixedRegex <- function(pattern) {
      gsub("([][^${}().?*+\\])", "\\\\\\1", pattern)
   }
E.g.,
   > asFixedRegex(".$^")
   [1] "\\.\\$\\^"
or
   > x <- c("C:\\Program Files\\word", "P[[:alnum:]]{2,3}",
"(x+y)[1*3]")
   > regexpr(paste(collapse="|", asFixedRegex(x)), x)
   [1] 1 1 1
   attr(,"match.length")
   [1] 21 17 10
   > nchar(x) # expect same as match.length
   [1] 21 17 10
Is there a standard function to do this?  If so, I'd
like to know its name.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  


> 
> Thanks,
> 
> Hadley
> 
> -- 
> http://had.co.nz/
> 
> ______________________________________________
> 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