假设我有一个字符串:
asd;;%$@#!G'{}[]
现在我想要转义特殊符号:
;&|><*?`$(){}[]!#
因此,输出将类似于:
asd\;\;%\$@\#\!G\'\{\}\[\]
如何使用Ruby中的gsub/sub
实现此目的?
答案 0 :(得分:1)
test_value = "asd;;%$@#!G'{}[]"
SPEC_REGEXP = /((;)|(\&)|(\|)|(>)|(<)|(\*)(\?)|(`)|(\$)|(\()|(\))|({)|(})|(\[)|(\])|(!)|(#))/
test_value.gsub!(SPEC_REGEXP,'\\\\\1')
答案 1 :(得分:1)
这与soundar的解决方案几乎相同(但使用字符类并且没有捕获):
"asd;;%$@#!G'{}[]".gsub(/[;&|><*?`$(){}\[\]!#]/, '\\\\\\0')