さて、私は次のようなファイルを読んでいます:
File: namehere
Category1<br>
Category2<br>
Category3<br>
Info1<br>
Info2<br>
Info3<br>
File: namehere
Category1<br>
Category2<br>
Category3<br>
Info1<br>
Info2<br>
Info3<br>
などなど。
常に同じ数のカテゴリがあり、それらは常に同じ名前を持っていますが、その後に続く情報は異なります。カテゴリよりも情報が少ない場合があり、情報にはさまざまな内容が含まれます。
情報だけのものをキャプチャしたいので、当初の考えでは、 と の間Category3
でキャプチャするように設定することでしたFile
。ただし、これは機能していません。おそらく、私には明らかではない明確な理由があります。
これが私が使っているものです
if ( /Category1([\s\S]+?)File/ ) {
push(@files, $1);
print @files;
私が提供したコードは、ファイル全体ではなく、これらの 2 つの単語を含む行のみを検索し、その間にあるものをキャプチャするためだ@files
と思います。ヘルプ/提案はありますか?
編集:
次のようなものを読んでいた場合、どのように変更しますか。
File: namehere
Category1<br>
Category2<br>
Category3<br>
Info1<br>
Info2<br>
Info3<br>
Info1<br>
Info2<br>
Info3<br>
Info1<br>
Info2<br>