10
my @matches = ($result =~ m/INFO\n(.*?)\n/);

したがって、Perl では、すべての一致をその正規表現に保存したいと考えています。発生するたびに INFO\n と \n の間に値を格納しようとしています。

しかし、私は最後のオカレンスのみを保存しています。私の正規表現は間違っていますか?

4

1 に答える 1

13

/gグローバルマッチングには修飾子を使用します。

my @matches = ($result =~ m/INFO\n(.*?)\n/g);

.この場合、改行と一致しないため、遅延定量化は不要です。以下の方がパフォーマンスが向上します。

my @matches = ($result =~ m/INFO\n(.*)\n/g);

/sピリオドを改行と一致させたい場合に使用できます。これらの修飾子の詳細については、perlreを参照してください。

于 2012-06-26T13:56:36.803 に答える