Re: [R] regular expression

From: Laurent Rhelp <laurentRhelp_at_free.fr>
Date: Sun 08 Apr 2007 - 09:13:54 GMT

Gabor Grothendieck a écrit :

>On 4/7/07, Laurent Rhelp <laurentRhelp@free.fr> wrote:
>
>
>>Gabor Grothendieck a écrit :
>>
>>
>>
>>>I assume is to replace single quotes in double quoted strings with single quoted
>>>strings containing double quotes in place of the single quotes
>>>
>>>
>>>
>>that's rignt
>>
>>
>>
>>>while leaving
>>>double quoted strings not containing single quotes as they are (i.e. leave them
>>>as double quoted).
>>>
>>>
>>>
>>No, at the end, I have to replace all the double quotes (") by simple
>>quote (')
>>
>>
>
>In that case it simplifies to the following (same as before except
>for definition of f):
>
>library(gsubfn)
>
>squote <- "'" # single quote. This is a double quote, single quote, double quote
>dquote <- '"' # double quote This is a single quote, double quote, single quote
>
>s <- "[\"...\" \"...'...\"]"
>f <- function(x) chartr(paste(squote, dquote), paste(dquote, squote), x)
>gsubfn('["][^"]*["]', f, s) # "['...' '...\"...']"
>
>______________________________________________
>R-help@stat.math.ethz.ch 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.
>
>
>
>

I discovered that it doesn't work when the pattern "...." is not on one line.
Here's an example of file read with readLines :

Lines <- c("line one example",

"line two example",
"example \"comment on one line it works \" end of the line",
"example \" comment on two lines",
"the end of the comment \" without ' inside",
"example \" comment on one line with ' inside it works \" end of the line",
"example \" comment on two lines with '",
"inside it doesn't works \"")

s <- Lines
f <- function(x) chartr(paste(squote, dquote), paste(dquote, squote), x) gsubfn('["][^"]*["]', f, s)

[1] "line one
example" [2] "line two
example"

[3] "example 'comment on one line it works ' end of the 
line"               
[4] "example \" comment on two 
lines"                                       
[5] "the end of the comment \" without ' 
inside"                            
[6] "example ' comment on one line with \" inside it works ' end of the 
line"
[7] "example \" comment on two lines with '"
[8] "inside it doesn't works \""

R-help@stat.math.ethz.ch 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 Sun Apr 08 19:20:17 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sun 08 Apr 2007 - 12:31:02 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.