1

私はこれをやろうとしています

"love{ }&\abbc+".gsub(/([-\|!\(\)\{\}\[\]\^"~\*\?:\\&\+])/, '\\\1')

この出力を取得するには

"love\{ \}&\\abbc\+"

しかし、私は得ています

"love\\1 \\1\\1\abbc\\1"

irbで。私は何を間違っていますか(ルビー1.8.7)?

4

2 に答える 2

1

ブロックフォームを試してみませんか?

"love{ }&\abbc+".gsub(/([-\|!\(\)\{\}\[\]\^"~\*\?:\\&\+])/) { |m| "\\#{m}" } 
于 2012-07-19T10:57:13.093 に答える
1
"love{ }&\abbc+".gsub(/([-\|!\(\)\{\}\[\]\^"~\*\?:\\&\+])/, "\\\\\\1")

追加のエスケープが必要な理由については、http://www.ruby-forum.com/topic/143645を参照してください。

于 2012-07-19T10:54:46.733 に答える