2
puts 'the\t\'arget'.gsub("'", "\\'")

次の出力が生成されます。

the\targetarget

なんで?

4

1 に答える 1

5

\\'gsub 置換の は実際には後方参照であり、文字を元の文字列の文字の後のすべてのものに置き換えています''これはargetです。

これは、次のRuby ドキュメントString#gsubからの引用です。

replacement が文字列の場合、一致したテキストに置き換えられます。これには、\\d (d はグループ番号) または \\k (n はグループ名) の形式のパターンのキャプチャ グループへの後方参照が含まれる場合があります。二重引用符で囲まれた文字列の場合、両方の後方参照の前にバックスラッシュを追加する必要があります。ただし、置換内では、&$ などの特殊な一致変数は現在の一致を参照しません。

于 2013-03-28T12:14:06.027 に答える