2017-03-13 3 views
-5

私はこれを見つけました:/sera/ === coursera/sera/の意味は?教えてください。私は上記の表現の意味を理解していません。ルビの/ anystring/meanとは何ですか?

+1

短い回答:「Regexp.new( 'sera') '」(https://ruby-doc.org/core-2.1.1/Regexp.html) –

+0

ようこそスタックオーバーフロー。 「[ask]」をお読みください。努力を払うことは本当に重要です。あなたはRubyのドキュメントを読んだり、インターネットを検索しましたか?そうでない場合、なぜですか?もしそうなら、どこで、なぜそれらのサイトは役に立たなかったのですか?コードを試しましたか?そうでない場合、なぜですか?その場合は、わからない特定の問題を示す最小限のコードを表示してください。それがなければあなたは試していないように見えます。 –

+0

なぜこれをダウンホートしますか? –

答えて

3

正規表現です。

coursera.match(/sera/) 

または::

/sera/.match(coursera) 

これらは両方とも機能的に類似している同じのより正式なバージョンがこれです。文字列が正規表現と一致するか、正規表現が文字列との一致をテストできます。

元のコードの説明は、seraは変数courseraにありますか?

あなたがこれを行う場合は、次の

"coursera".match(/sera/) 
# => #<MatchData "sera"> 

あなたはそれがマッチした意味MatchData結果を取得します。複雑な式の場合は、任意のパターンなどを使用して文字列の一部を取り込むことができます。ここでの一般的なルールは、/.../のようなルビールックの正規表現か、曖昧な形の%r[...]のような正規表現です。

RubyがPerlから継承したものである=~演算子が使用されることがあります。また、matchを意味します。

+1

[Regexp#===](http://ruby-doc.org/core-2.4.0/Regexp.html#method-i-3D-3D-3D)についてもお聞かせください。 AkShay、このようなことが見えたら、 '/sera/.class #=> Regexp'と書くことができます。 [Regexp](http://ruby-doc.org/core-2.4.0/Regexp.html)のクラスのドキュメントを読むと、 '/ sera /'が正規表現であることがわかります。メソッド '==='は '/ sera /'で呼び出されるので、 '==='はクラス 'Regexp'の*インスタンスメソッド*です(あるいは、' Regexp'のインスタンスのメソッドです。 '/ sera /'として)。 'Regexp'のリンクで' === 'のために文書をチェックすることができます。 –

関連する問題