1

私はルビーが初めてです。複数のキーワードが 1 行に存在するかどうかを調べる方法を知りたいです。たとえば、「He​​llo, how are you?」という行で、「Hello」または「how」が存在する場合は true を返します。/Hello|how/ のように reg exp を使用しようとしていますが、処理する行数が多いとパフォーマンスが低下します。Regexp はこのユースケースに適しているかもしれませんが、Google で具体的な例を見つけることができません。

助けてくれてありがとう!

4

2 に答える 2

-1

少なくとも 1 つのキーワードが文字列に含まれているかどうかを確認するには、次のようにします。

keywords = ["hello", "how"]
r = Regexp.new(keywords.join("|")) # case-sensitive
r.match("Hello, how are you?").nil? => false
r.match("no keywords exist").nil? => true

より高速な正規表現については、https://github.com/mudge/re2を使用してください。Googles re2 の ruby​​ ラッパーですhttps://code.google.com/p/re2/

于 2013-09-13T01:45:17.703 に答える