SOLUTION:。。
search_reg_exp = Regexp.escape(str).gsub(/(both|options|or|more)/, "(both|options|or|more)")
long_str.index(search_reg_exp)
ORIGINAL ANSWER:
String#index
がちょうど単一の文字では動作しません
が、それは任意の長さの部分文字列に使用することができ、そしてあなたはそれを、おそらくこのケースでは最高になり、正規表現を与えることができます:
some_string = "Russell's teapot"
another_string = "Russell's teapot"
apostrophe_expr = /'|'/
some_string.index apostrophe_expr
# => 7
another_string.index apostrophe_expr
# => 7
もう1つの方法は、文字列の操作を開始する前にHTMLエンティティをデコードすることです。 html_helpersなど、このための様々な宝石があります。
require 'html_helpers'
another_string = "Russell's teapot"
yet_another_string = HTML::EntityCoder.decode_entities another_string
# => "Russell's teapot"
yet_another_string.index "'"
# => 7
yet_another_string.index ?' # bonus syntax tip--Ruby 1.9.1+
# => 7
あなたの最初のソリューション:あなたが検索テキストは、いくつかの文字列や他の文字列、およびテキストのはるかに大きな身体であなたの検索であるかどうかを判定することを行うのですか? – NullVoxPopuli
正規表現内の任意の数の '| '文字を使用して、いくつかの選択肢のいずれかに一致させることができます。 '/ foo | bar | baz /'です。正規表現は大きな話題ですが、最終的に学ぶ必要があります。 Pickaxeには[非常に短いイントロ](http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ)があります。 –
私は正規表現を知っています、それは正規表現のために文字列全体をエスケープする方法の問題ですので、そこにあるものとマッチさせようとします。他のことはしません。それが完了したら、私は 'またはHTMLコードを正規表現equivで両方ともgsubする必要があります。 – NullVoxPopuli