3
私はknitrでR解析を出力したいのですが、私はアンダースコアの行を含むテキストを持っています。私はそれらをエスケープさせなければならないので、すべて_
を\_
に変えてください。バックスラッシュをgsubで挿入します
しかし、バックスラッシュも正規表現の特殊文字なので、実際にはアンダースコアの前にバックスラッシュを1つ挿入する方法はありませんでした。奇数のバックスラッシュがエラーを生成するようです(最後のものはアンダースコアとペアになっているようですが)。偶数でエスケープしようとしてもうまくいきませんでした。
a <- "blah _ blah ___ blah"
> gsub("_", "\\_", a)
[1] "blah _ blah ___ blah"
> gsub("_", "\\\\_", a)
[1] "blah \\_ blah \\_\\_\\_ blah"
> gsub("_", "\\\_", a)
Error: '\_' is an unrecognized escape in character string starting ""\\\_"
> gsub("_", "\_", a)
Error: '\_' is an unrecognized escape in character string starting ""\_"
正しい方法は何ですか。 gsubとregexを使う必要はありませんが、私は単一の文字列に簡単にエスケープする必要があります。
でそれを見つけることができ
\
この質問は
\
をエスケープする必要があります*重複ではありません。他の質問の答えは、2つのバックスラッシュを使用することです - 私はそれを試したと私のテキストで見ることができ、それは動作しません。 – rumtscho
これはすべて二重引用符であり、* '' \ '' *で置き換えられた問題はかなりうまく説明されています。アクランは何度もそれに答えました。ここには[私の答え](http://stackoverflow.com/questions/41186399/replacing-white-space-with-one-single-backslash/41186646#41186646)です。 –
@WiktorStribiżewよ、申し訳ありません、今すぐ入手しました。 「猫を通して走らせなければならない」という部分は、私を本当に混乱させました。 – rumtscho