0

文字列があるとしましょう:

asd;;%$@#!G'{}[]

今、私は特別な記号をエスケープしたい:

;&|><*?`$(){}[]!#

したがって、出力は次のようになります。

asd\;\;%\$@\#\!G\'\{\}\[\]

gsub/subRubyでこれを使用するにはどうすればよいですか?

4

2 に答える 2

1

これは、soundar のソリューションとほぼ同じ考え方です (ただし、文字クラスを使用し、キャプチャは行いません)。

"asd;;%$@#!G'{}[]".gsub(/[;&|><*?`$(){}\[\]!#]/, '\\\\\\0')
于 2012-04-20T09:47:32.453 に答える
1
test_value = "asd;;%$@#!G'{}[]"
SPEC_REGEXP = /((;)|(\&)|(\|)|(>)|(<)|(\*)(\?)|(`)|(\$)|(\()|(\))|({)|(})|(\[)|(\])|(!)|(#))/
test_value.gsub!(SPEC_REGEXP,'\\\\\1')
于 2012-04-20T09:32:25.607 に答える