luofeiyu
2013-Dec-29 11:42 UTC
[R] why the "[^\\d]" is not equal to "[^0-9]" in R regular expression?
gregexpr(pattern="[^0-9]","+12345ty") [[1]] [1] 1 7 8 attr(,"match.length") [1] 1 1 1 attr(,"useBytes") [1] TRUE gregexpr(pattern="[^\\d]","+12345ty") [[1]] [1] 1 2 3 4 5 6 7 8 attr(,"match.length") [1] 1 1 1 1 1 1 1 1 attr(,"useBytes") [1] TRUE why the pattern `[^\\d]` has no same effect as of `[^0-9]` ?
William Dunlap
2013-Dec-29 18:09 UTC
[R] why the "[^\\d]" is not equal to "[^0-9]" in R regular expression?
Use perl=TRUE if you want \\d to mean something special (a digit) in a regular expression.> identical(gregexpr(pattern="[^0-9]","+12345ty"), gregexpr(pattern="[^\\d]","+12345ty",perl=TRUE))[1] TRUE 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 luofeiyu > Sent: Sunday, December 29, 2013 3:42 AM > To: R-help at r-project.org > Subject: [R] why the "[^\\d]" is not equal to "[^0-9]" in R regular expression? > > gregexpr(pattern="[^0-9]","+12345ty") > [[1]] > [1] 1 7 8 > attr(,"match.length") > [1] 1 1 1 > attr(,"useBytes") > [1] TRUE > gregexpr(pattern="[^\\d]","+12345ty") > [[1]] > [1] 1 2 3 4 5 6 7 8 > attr(,"match.length") > [1] 1 1 1 1 1 1 1 1 > attr(,"useBytes") > [1] TRUE > > why the pattern `[^\\d]` has no same effect as of `[^0-9]` ? > > ______________________________________________ > 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.