0
私は検索アルゴリズムを作成しており、検索クエリのすべての単語をアスタリスクで囲み、部分一致を助けたいと考えています。私は引用符を無視しながら、単一の単語だけを折り返したい。私がやろうとしているものの例は次のとおりです。文字列を受け取り、指定された文字のすべての内部単語をラップするエレガントな方法がありますか?
'test test test' test2 test2 => 'test test test' *test2* *test2*
"test test test" test2 test2 => "test test test" *test2* *test2*
私はこれを行いますが、それは
split(/\s(?=(?:[^'"]|'[^']*'|"[^"]*")*$)/).map{|x| ["'", '"'].include?(x[0]) ? x+' ' : '*'+x+'* '}.join
本当に醜いですアルゴリズムを持っている私が欲しいものをやってのよりエレガントなrailsian方法はあります?