将标记插入到匹配模式的字符串中,无论ruby中的情况如何

时间:2012-10-04 09:21:22

标签: ruby string

我正在进行搜索功能,我希望突出显示匹配的模式。因此,无论何种情况,我都必须在字符串中添加和附加<$></$>的所有模式。

highlight("RajkumarrAjkumarRAjkumaraj", "Ra") 
# should return "<$>Ra</$>jkumar<$>rA</$>jkumar<$>RA</$>jkuma<$>ra</$>j"

highlight("RajkumarrAjkumarRAjkumaraj", "ra") 
# should return "<$>Ra</$>jkumar<$>rA</$>jkumar<$>RA</$>jkuma<$>ra</$>j"

highlight("RajkumarrAjkumarRAjkumaraj", "rA") 
# should return "<$>Ra</$>jkumar<$>rA</$>jkumar<$>RA</$>jkuma<$>ra</$>j"

highlight("RajkumarrAjkumarRAjkumaraj", "RA") 
# should return "<$>Ra</$>jkumar<$>rA</$>jkumar<$>RA</$>jkuma<$>ra</$>j"

2 个答案:

答案 0 :(得分:3)

您可以使用String#gsub()

def highlight(str, pattern)

    str.gsub(/(#{Regexp.escape(pattern)})/i, "<$>$1</$>")

end

答案 1 :(得分:1)

试试这个

> "RajkumarrAjkumarRAjkumaraj".gsub(/(ra)/i, '<$>\1</$>')