我有这个字符串:
string_to_replace = 'if [ "${USER_CONFIG}" != "" ] ; then'
我想得到:
'Sample Only!!!!!'
我在做:
string_to_replace.sub(/if [ "${USER_CONFIG}" != "" ] ; then/, 'Sample Only!!!!!')
但我没有得到理想的结果。
有没有办法在这个字符串中一次性转义所有正则表达式字符?
答案 0 :(得分:2)
改变这个:
/if [ "${USER_CONFIG}" != "" ] ; then/
对此:
'if [ "${USER_CONFIG}" != "" ] ; then'
或
string_to_replace
或强>
/if \[ "\${USER_CONFIG}" != "" \] ; then/
或强>
"if \[ \"\${USER_CONFIG}\" != \"\" \] ; then"
在sub()
函数中。
答案 1 :(得分:0)
问题的真正答案是,是的,有。而这样做的方法是:
Regexp.new(Regexp.escape(string_to_replace))
#=> /if\ \[\ "\$\{USER_CONFIG\}"\ !=\ ""\ \]\ ;\ then/