[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