> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@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@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@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.