0

次の文字列があるとします。

google-com, Awesome-net(Ooops), facebook-com / rocket-yet

で終わるすべての単語を抽出したいのです-comが、それらをグループ化します。

今のところ、私は試しました:

^\w+[-]com

それはうまくいきますが、最初の一致しかキャッチしません。他のすべてを取得するにはどうすればよいですか?括弧を使った何かかもしれませんが、方法がわかりません..

一致したすべての文字列をMatchDataオブジェクト (Ruby) にすると、Array.

ルビー1.9.3p125を使用しています

1.9.3p125 :124 > original
 => "google-com, Awesome-net(Ooops), facebook-com / rocket-yet" 
1.9.3p125 :125 > results = original.match(/(\w+-com)/)
 => #<MatchData "google-com" 1:"google-com"> 
4

3 に答える 3

2

findall オプションを使用するだけで、これが機能します。

\w+-com

http://rubular.com/でテストしました

于 2012-06-05T00:13:50.477 に答える
0

それmatchは正しい方法ではなかったようです。

scanBenRouxとEpic_orangeによって提案された正規表現でに変更されました。

于 2012-06-05T02:31:46.673 に答える
0

編集:問題が見つかりました。正規表現の先頭にキャレットがあり、文字列の先頭にあるこれのインスタンスのみが一致することを象徴しています。それを削除すると、文字列内のすべてのグループを照合できるようになります。

(\w+[-]com)
于 2012-06-05T00:04:29.583 に答える