Re: [R] Regex for Special Characters under Grep

From: Marc Schwartz <marc_schwartz_at_comcast.net>
Date: Thu, 12 Jun 2008 21:06:42 -0500

on 06/12/2008 08:42 PM Gundala Viswanath wrote:
> Hi all,
>
> I am trying to capture lines of a file that DO NOT
> start with the following header: !, #, ^
>
> But somehow my regex used under grep doesn't
> work.
>
> Please advice what's wrong with my code below.
>
> __BEGIN__
> in_fname <- paste("mydata.txt,".soft",sep="")
> data_for_R <- paste("data_for_R/", args[3], ".softR", sep="")
>
> # my regex construction
> cat(temp[-grep("^[\^\!\#]",temp,perl=TRUE)], file=data_for_R, sep="\n")
>
>
> dat <- read.table(data_for_R)
> ___END__
>

You need to double the escape character when being used to differentiate meta-characters in a regex. Note also that the only meta-character in your sequence is the carat ('^').

Lines <- c("! Not This Line", "# Not This Line", "^ Not This Line",

            "This Line")

 > Lines
[1] "! Not This Line" "# Not This Line" "^ Not This Line" [4] "This Line"

 > grep("^[!#\\^]", Lines)
[1] 1 2 3

 > Lines[-grep("^[!#\\^]", Lines)]
[1] "This Line"

HTH, Marc Schwartz



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. Received on Fri 13 Jun 2008 - 02:12:20 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 13 Jun 2008 - 06:30:50 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive