2012-05-12 7 views
0
name="(this is 
a message 
) 

(other message)"; 

res=name.scan(/(\(.*\))/m); 
puts res.join("###"); 

上記のコードでは、一致するかっことその中のテキストを全体の表現として抽出したいと思います。ルビの文字列照合のためのパターンを探しています

私は私のコードを次のような結果を取得したい意味:言うことです

(this is 
a message 
)###(other message) 

、RESの長さは2ない1、 でなければなりません。しかし、私のコードでは、私は常に取得する:

(this is 
a message 
) 
(other message) 

私のパターンに何か問題があります。それを修正する手助けがありますか?

答えて

2

あなたはnon-greedy試合を使いたい、そうする正規表現の行を変更:

res=name.scan(/(\(.*?\))/m); 
関連する問題