/ / perl正規表現を使ってこのようなものをどうやってマッチさせるのですか - 正規表現、perl

どのように私はこのようなものをperl正規表現を使用して一致させるのですか? - 正規表現、perl

ファイルは以下のようになります。

[N the computer end] [M whatever] [N you look] [N why not]

で始まる単語だけが必要です [N だからここで私はあなたが見ない理由あなたが見えるコンピュータエンドを取得したいです それらは同じ行にあってもなくてもかまいません

私はこのような何かを試した:

if($line =~/[N(.+?)]/)

しかし、それは各行の最初のものとだけ一致します。

回答:

回答№1は4

使用 g "g"ローバルマッチを探すための正規表現の修飾子。このどちらか:

while ($line =~ /[N(.+?)]/g) {
# $1 contains the text between "[N" and "]"
}

または次のように:

my @matches = $line =~ /[N(.+?)]/g;
# @matches contains all of the matching items of text

回答№2の場合は0

各グループの一致を繰り返すためにwhileループに変更する必要があります。 Perlのドキュメント これを説明します。