R interprets backslash to give special meaning to the next character, i.e. it strips off the backslash and send the following character to gsub possibly reinterpreting it specially (for example \n is newline). Thus a backslash will never get to gsub unless you use a double backslash. Thus we can use "'\\." to represent \. Also note that that the regular expression "[.]" represents a literal dot and does not require a backslash in the first place. You don't need perl = TRUE for simple regular expressions like this.
On Wed, May 13, 2009 at 7:41 PM, Stephen J. Barr <stephenjb...@gmail.com> wrote: > Hello, > > I have several strings where I am trying to eliminate the period and > everything after the period, using a regular expression. However, I am > having trouble getting this to work. > >> x = "wa.w" >> gsub(x, "\..*", "", perl=TRUE) > [1] "" > Warning messages: > 1: '\.' is an unrecognized escape in a character string > 2: unrecognized escape removed from "\..*" > > In perl, you can match a single period with \. > Is this not so even with perl=TRUE. I would like for x to be equal to >> x = "wa" > > What am I missing here? > -stephen > ========================================== > Stephen J. Barr > University of Washington > WEB: www.econsteve.com > > ______________________________________________ > 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.