Duncan Murdoch wrote: > >>>>>> I was wondering if that is really necessary for perl=TRUE? wouldn't >>>>>> it be >>>>>> possible to parse a string differently in a regex context, e.g. >>>>>> automatically insert \\ for each \ , such that you can use the perl >>>>>> syntax >>>>>> directly? For example, if you want to input a newline as a >>>>>> character, you >>>>>> would use \n anyway. At the moment one says \\n to make it clear to >>>>>> R that >>>>>> you mean \n to make clear that you mean newline... this is pretty >>>>>> annoying. >>>>>> How likely is it that you want to pass a real newline character to >>>>>> PCRE >>>>>> directly? >>>>> No, that's not possible. At the level where the parsing takes place >>>>> R has >>>>> no idea of its eventual use, so it can't tell that some strings are >>>>> going to >>>>> be interpreted as Perl, and others not. >> Here's a quick hack to achieve the impossible: > > That might solve John's problem, but I doubt it. As far as I can see > it won't handle \L, for example. >
well, it was not supposed to. it addresses the need for doubling backslashes when a backslash character is an element of the regex. foo = "foo\\n\n" grep("\n", foo, perl=TRUE, value=TRUE) mygrep("\n", foo, perl=TRUE, value=TRUE) # both match the newline grep("\\n", foo, perl=TRUE, value=TRUE) mygrep("\\n", foo, perl=TRUE, value=TRUE) # both match (guess what) bar = "bar\n" grep("\n", bar, perl=TRUE, value=TRUE) mygrep("\n", bar, perl=TRUE, value=TRUE) # both match the newline grep("\\n", bar, perl=TRUE, value=TRUE) mygrep("\\n", bar, perl=TRUE, value=TRUE) # counterintuitively, grep matches (intuitively, it should match backslash-n, not a newline, but there's just a newline in bar) -- i do know why it matches, but i'm pretty sure for many of those who do it's an inconvenient detail, and for those who don't it's a confusing annoyance zee = "zee\\" grep("\\", zee, perl=TRUE, value=TRUE) mygrep("\\", zee, perl=TRUE, value=TRUE) # grep fails, needs "\\\\" conclusion? i'd opt for mygrep in my own code; i guessed this was what john wanted, therefore the post. vQ ______________________________________________ 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.