[R] regular expression
Laurent Rhelp
laurentRhelp at free.fr
Sun Apr 8 11:13:54 CEST 2007
Gabor Grothendieck a écrit :
>On 4/7/07, Laurent Rhelp <laurentRhelp at 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 at 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 \""
More information about the R-help
mailing list