0
name="(this is 
a message
)

(other message)";

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

上記のコードでは、表現全体として、その中のテキストと一致する括弧を抽出したいと思います。

つまり、コードから次の結果を取得したいということです。

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

つまり、解像度の長さは1ではなく2である必要がありますが、私のコードでは、常に次のようになります。

(this is 
a message
)
(other message)

私のパターンに何か問題があるはずですが、誰かがそれを修正するのを手伝ってくれますか?

4

1 に答える 1

2

欲張りでない一致を使用したいので、正規表現の行を次のように変更します。

res=name.scan(/(\(.*?\))/m);
于 2012-05-12T03:11:53.493 に答える