正则表达式对此搜索字符串有帮助吗?输入: "abc d efg" 输出: [ "%abc%" , "%efg%" ]



这个代码可以用正则表达式优化吗?

search = search.split.delete_if{|s|s.length==1}.map{|s|s="%#{s}%"}

它获取一个字符串,将其拆分为一个数组,并删除任何长度为1的元素,并用百分比符号包装每个字符串,为SQL做好准备。

输入:"abc d efg"输出:["%abc%","%efg%"]

这很有效,但它的基准测试速度较慢,我认为基于正则表达式的解决方案不会更快。

string.scan(/S{2,}/).map { |word| "%#{word}%" }

避免重复阵列似乎是我能想到的最快的:

words = string.split
words.reject! { |s| s.length == 1 }
words.map! { |s| "%#{s}%" }
words

最新更新