How to escape backslashes in R string

后端 未结 3 1846
误落风尘
误落风尘 2020-11-22 09:56

I\'m writing strings which contain backslashes (\\) to a file:

x1 = "\\\\str"

x2 = "\\\\\\str"
# Error: \'\\s\' is an unreco         


        
相关标签:
3条回答
  • 2020-11-22 10:30

    Note that the doubling of backslashes is because you are entering the string at the command line and the string is first parsed by the R parser. You can enter strings in different ways, some of which don't need the doubling. For example:

    > tmp <- scan(what='')
    1: \\\\\str
    2: 
    Read 1 item
    > print(tmp)
    [1] "\\\\\\\\\\str"
    > cat(tmp, '\n')
    \\\\\str 
    > 
    
    0 讨论(0)
  • 2020-11-22 10:38

    Have a read of this section about character vectors.

    In essence, it says that when you enter character string literals you enclose them in a pair of quotes (" or '). Inside those quotes, you can create special characters using \ as an escape character.

    For example, \n denotes new line or \" can be used to enter a " without R thinking it's the end of the string. Since \ is an escape character, you need a way to enter an actual . This is done by using \\. Escaping the escape!

    0 讨论(0)
  • 2020-11-22 10:41

    [...] If I want to get a string containing 5 \ ,should i write 10 \ [...]

    Yes, you should. To write a single \ in a string, you write it as "\\".

    This is because the \ is a special character, reserved to escape the character that follows it. (Perhaps you recognize \n as newline.) It's also useful if you want to write a string containing a single ". You write it as "\"".

    The reason why \\\str is invalid, is because it's interpreted as \\ (which corresponds to a single \) followed by \s, which is not valid, since "escaped s" has no meaning.

    0 讨论(0)
提交回复
热议问题