これを読むために時間を割いてくれてありがとう。私はまだPerlにかなり慣れていないので、どんな助けでもありがたいです!
正規表現を使用して、大きなドキュメントの大きなセットからテキストを抽出しようとしています。
大きなドキュメントのどこから抽出を開始するかを識別するために使用する正規表現があります。この正規表現の条件は、正規表現に一致するインスタンスが複数存在する場合が多いというものです。これらの一致のどれが、抽出したいテキストの本文の始まりであるかを識別できます。(以下の例では、これは$finds[2]になります。
私がやりたいのは、。*?$ ENDを追加して同じ正規表現を再度実行し、$ENDが終了を識別するテキストを抽出することです。しかし、私が必要としているのは、$STARのN番目のオカレンスから抽出を開始するように正規表現に指示する方法です。
このことを考慮:
my $sentence = 'A1Z blah blah A2Z blah blah A3Z blah A4Z END A5Z';
my @finds = $sentence =~ m/(A\dZ)/mg;
####################
## Code that determine the element of @finds that
## contains the match to the extraction I want.
## For this question assume it is the third match (A3Z),
## Element index number 2.
####################
$START = 2;
これが私の試みです:
my @finds2 = ($sentence =~ m/((A\dZ){$START}.*?(END))/mg);
my @finds2 = ($sentence =~ m/((A\dZ)[$START].*?(END))/mg);
{$START}または[$START]がPERLに、「$ START」番目の一致が発生するまで待機して抽出を開始し、一致を継続するように指示された場合は、それを希望します。
私の試みが正しくないことを私は知っています。うまくいけば、彼らは私がやろうとしていることを示すのに役立ちます。