2016-04-27 12 views
0

で私はこのような文字列のシリーズを貼り付けしようとしている:私は取り除くことができますどのように貼り付け、二重引用符「」R

paste0("//*[@id=",'"set_',1,'_div"]/a') 
[1] "//*[@id=\"set_1_div\"]/a" 

「\」?これは私の予想される結果であるバックスラッシュは次の文字がすなわち、「エスケープ」する必要があることを指定たくさん

+2

実行してみてください 'X < - paste0(「// * [@ ID =」「" set_の」 、1、 '_ div "]/a'); x == '// * [@ id = "set_1_div"]/a''とし、 "余分な"スラッシュが "実際にそこにある"かどうかを判断します。 – joran

+1

また、これがRのデフォルトの印刷方法で、 '' 'を前に付いたエスケープ文字で表示していることを確認するには、これを試してみてください:' print(paste0( "// * [@ id ="、 '"set _'、1 、 '_ div "]/a')、quote = FALSE)' –

+0

OMG、これでは時間がかかります。 –

答えて

2

[1] "//*[@id="set_1_div"]/a" 

おかげで、それは式の一部であると解釈する必要はありませんが、むしろ文字として。 print文を使用すると、文字列が引用されるため、エスケープ記号(バックスラッシュ)が含まれます。しかし、猫の文を使用して、簡単にバックスラッシュがactualy文字列の一部ではないことがわかります。

> x <- paste0("//*[@id=",'"set_',1,'_div"]/a') 
> x 
[1] "//*[@id=\"set_1_div\"]/a" 
> cat(x) 
//*[@id="set_1_div"]/a 
関連する問題