how to replace a single forward slash with a double backward slash in a string?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

how to replace a single forward slash with a double backward slash in a string?

Sean Zhang
Dear R-helpers.

Can someone kindly tell me how to replace a single forward slash with double
backward slash in a string?

i.e.,  from  "a/b" to "a\\b"

Many thanks in advance.

-Sean

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: how to replace a single forward slash with a double backward slash in a string?

David Winsemius

On Dec 13, 2009, at 1:00 PM, Sean Zhang wrote:

> Dear R-helpers.
>
> Can someone kindly tell me how to replace a single forward slash  
> with double
> backward slash in a string?
>
> i.e.,  from  "a/b" to "a\\b"

 > sub("/", "\\\\","a/b")
  #the backslashes need to be doubled because they are the escape  
character.
[1] "a\\b"

>
> Many thanks in advance.
>
> -Sean
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] 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.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: how to replace a single forward slash with a double backward slash in a string?

Peter Dalgaard
David Winsemius wrote:

>
> On Dec 13, 2009, at 1:00 PM, Sean Zhang wrote:
>
>> Dear R-helpers.
>>
>> Can someone kindly tell me how to replace a single forward slash with
>> double
>> backward slash in a string?
>>
>> i.e.,  from  "a/b" to "a\\b"
>
>  > sub("/", "\\\\","a/b")
>  #the backslashes need to be doubled because they are the escape character.
> [1] "a\\b"

Bzzzt. Wrong answer.

 > nchar(sub("/", "\\\\","a/b") )
[1] 3
 > cat(sub("/", "\\\\","a/b"),"\n")
a\b

 > nchar(sub("/", "\\\\\\\\","a/b") )
[1] 4
 > sub("/", "\\\\\\\\","a/b")
[1] "a\\\\b"
 > cat(sub("/", "\\\\\\\\","a/b"),"\n")
a\\b

You are not the first... ;-)

--
    O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
   c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
  (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - ([hidden email])              FAX: (+45) 35327907

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: how to replace a single forward slash with a double backward slash in a string?

Peter Dalgaard
Peter Dalgaard wrote:

> David Winsemius wrote:
>>
>> On Dec 13, 2009, at 1:00 PM, Sean Zhang wrote:
>>
>>> Dear R-helpers.
>>>
>>> Can someone kindly tell me how to replace a single forward slash with
>>> double
>>> backward slash in a string?
>>>
>>> i.e.,  from  "a/b" to "a\\b"
>>
>>  > sub("/", "\\\\","a/b")
>>  #the backslashes need to be doubled because they are the escape
>> character.
>> [1] "a\\b"
>
> Bzzzt. Wrong answer.

... unless of course, Sean really intended to replace a single slash
with a SINGLE backslash.

>
>  > nchar(sub("/", "\\\\","a/b") )
> [1] 3
>  > cat(sub("/", "\\\\","a/b"),"\n")
> a\b
>
>  > nchar(sub("/", "\\\\\\\\","a/b") )
> [1] 4
>  > sub("/", "\\\\\\\\","a/b")
> [1] "a\\\\b"
>  > cat(sub("/", "\\\\\\\\","a/b"),"\n")
> a\\b
>
> You are not the first... ;-)
>


--
    O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
   c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
  (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - ([hidden email])              FAX: (+45) 35327907

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: how to replace a single forward slash with a double backward slash in a string?

David Winsemius
In reply to this post by Peter Dalgaard

On Dec 13, 2009, at 1:58 PM, Peter Dalgaard wrote:

> David Winsemius wrote:
>> On Dec 13, 2009, at 1:00 PM, Sean Zhang wrote:
>>> Dear R-helpers.
>>>
>>> Can someone kindly tell me how to replace a single forward slash  
>>> with double
>>> backward slash in a string?
>>>
>>> i.e.,  from  "a/b" to "a\\b"
>> > sub("/", "\\\\","a/b")
>> #the backslashes need to be doubled because they are the escape  
>> character.
>> [1] "a\\b"
>
> Bzzzt. Wrong answer.
>
> > nchar(sub("/", "\\\\","a/b") )
> [1] 3
> > cat(sub("/", "\\\\","a/b"),"\n")
> a\b
>
> > nchar(sub("/", "\\\\\\\\","a/b") )
> [1] 4
> > sub("/", "\\\\\\\\","a/b")
> [1] "a\\\\b"
> > cat(sub("/", "\\\\\\\\","a/b"),"\n")
> a\\b
>
> You are not the first... ;-)

Thanks. I'm probably not the last, but seeing as this is not my first  
effort at this either, let me make an effort toward preventing myself  
(and Zhang) from getting it wrong (again).
-- The console display is a potentially misleading representation of  
the string object in the sense that it displays any "\" characters as  
"\\"?
-- When used in a regular expression, one needs to use FOUR "\"'s to  
get one 'internal' "\", the first two "\\" create one escape-char  
within the parser then which then applies to the second escape-char  
created by the second two "\\"?

(I think I have seen both those facts in print before, but perhaps  
typing them will make it stick this time.)


>
> --
>   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
>  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
> (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45)  
> 35327918
> ~~~~~~~~~~ - ([hidden email])              FAX: (+45)  
> 35327907

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
[hidden email] 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.