1

一致したパターンを強調表示する検索機能を実行しています。そのため、ケースに関係なく、文字列内のすべてのパターンの前に と を<$>それぞれ追加する必要があり</$>ます。

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"
4

2 に答える 2

3

を使用できますString#gsub()

def highlight(str, pattern)

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

end
于 2012-10-04T09:25:00.763 に答える
1

これを試して

> "RajkumarrAjkumarRAjkumaraj".gsub(/(ra)/i, '<$>\1</$>')
于 2012-10-04T11:17:29.283 に答える