如果前两个字母与模式匹配,如何修改字符串?

时间:2011-11-18 14:08:23

标签: ruby-on-rails ruby

我有这样的字符串:

$5.00 off blah blah
5% off blah blah
This off should not match

我希望匹配以^([$]?[\d.]+[%]?) off .*

开头的字符串

并将它们转换为:

<strong>$5.00 off</strong> blah blah
<strong>5% off</strong> blah blah
This off should not match

这就是我现在所拥有的东西(新的Ruby):

def highlight_name(name)
  words = name.dup.split

end

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

string.gsub(/^([$]?[\d.]+[%]?) off .*/, "<strong> \\0 </strong>" )

\\O指的是匹配的字符串。

答案 1 :(得分:0)

根据apneadiving的答案,修改为你想做的事情:

string.gsub(/^([$]?[\d.]+[%]? off)( .*)$/, '<strong>\1</strong>\2' )