2012-04-20 12 views
0

はのは、私は、文字列があるとしましょう: ルビの文字列から正規表現を検索して文字を置き換えるには?

asd;;%[email protected]#!G'{}[] 

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

asd\;\;%\[email protected]\#\!G\'\{\}\[\] 

どのように行うことができます

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

ので、出力は次のようになります私はRubyでgsub/subを使ってこれを達成していますか?

+0

これは、文字列の特殊文字を見つけるための正規表現です。 /[; \&\ |><\ * \?> '\ $ \(\){} \ [\] \!\#]/ –

+0

http://stackoverflow.com/a/5396495/1315563 – yazu

答えて

1
test_value = "asd;;%[email protected]#!G'{}[]" 
SPEC_REGEXP = /((;)|(\&)|(\|)|(>)|(<)|(\*)(\?)|(`)|(\$)|(\()|(\))|({)|(})|(\[)|(\])|(!)|(#))/ 
test_value.gsub!(SPEC_REGEXP,'\\\\\1') 
1

ここsoundarの溶液中とほとんど同じ考えです(ただし、文字クラスと無キャプチャを使用して):

"asd;;%[email protected]#!G'{}[]".gsub(/[;&|><*?`$(){}\[\]!#]/, '\\\\\\0') 
関連する問題