ファイルは以下のようになります。
[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のドキュメント これを説明します。