Ruby字符串sub没有正则表达式返回引用

前端之家收集整理的这篇文章主要介绍了Ruby字符串sub没有正则表达式返回引用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在 Ruby中做一个简单的字符串子.

sub()的第二个参数是一小段缩小的JavaScript,其中包含正则表达式.此字符串中正则表达式中的后向引用似乎影响了sub的结果,因为替换的字符串(即第一个参数)出现在输出字符串中.

例:

input = "string <!--tooreplace--> is here"
output = input.sub("<!--tooreplace-->","\&")

我希望输出为:

"string \& is here"

不:

"string & is here"

或者如果逃避正则表达式

"string <!--tooreplace--> is here"

基本上,我想要一些方法来做一个没有正则表达式后果的字符串sub – 只是一个简单的字符串替换.

解决方法

为了避免弄清楚如何逃避替换字符串,请使用 Regex.escape.当替换复杂时,它很方便,或者处理它是一种不必要的痛苦. String上的一个小帮手也很好.
input.sub("<!--toreplace-->",Regexp.escape('\&'))

猜你在找的Ruby相关文章