区分引号(")与反斜杠和引号(\")

时间:2015-10-22 15:34:39

标签: regex r url

这是我想要解决的问题的简化版本。 所以,尽量不要破解它:)

在R中,默认

'"' == '\"'

因此,当我使用

URLencode('\"')
URLencode('"')

我得到了相同的结果:%22

然而,我真正想要的是

上述两个命令分别为

%5C%22%22

目标是将诸如'parse "I am * \"good\"" as adj'之类的字符串编码为URL字符串

parse%20%22I%20am%20*%20%5C%22good%5C%22%22%20as%20adj

有什么想法吗?

========== update =====

考虑到上述问题的混淆。我想进一步澄清: 我理解R'\"'视为'"'。 但我希望R自动而不是手动,将'\"'用户字符串输入转换为'\\\"''"'的输入字符串视为'"''\"'时,无论如何都是等效的。

1 个答案:

答案 0 :(得分:1)

R字符串文字将反斜杠视为转义符号。如果你写\",反斜杠只是转义",但由于它不是有效的转义序列,反斜杠会被忽略。

要编写文字反斜杠,请使用\\,双反斜杠。

URLencode('\\"') 
## => "%5c%22"
URLencode('"')
## => "%22"
URLencode('parse "I am * \\"good\\"" as adj')
## => "parse%20%22I%20am%20*%20%5c%22good%5c%22%22%20as%20adj"

请参阅IDEONE demo