2

特定の文字列と多かれ少なかれランダムな文字列の間の行を抽出したいと思います。ファイルは次のようになります。

\\\\\
\\\\\     start 
\\\\\   
lines
to 
extract
\\\\\
\\\\\     <any string> (must not be start but could be sta*) 
\\\\\

これまで、2 番目の文字列を明示的に知らずに、これら 2 つの間の行を取得することはできませんでした。\w または [a-zA-Z] を使用して可能な文字として 2 番目を定義すると、perl は最初の行に 2 回一致するように見えるため、結果として " ----- start " のみを出力します。

これまでは次のようになっています。

open(FILE,'<','file.txt') or die "Could not open: $!";
while(<FILE>){
  print $_ if (/^\\{5}     start$/ .. /^\\{5}     [a-zA-Z]/);
}

出力は次のとおりです。

\\\\\     start

いくつかのアイデアを期待しています。

4

1 に答える 1

2

...の代わりに使用..して、両方の式が一致しないようにします。

于 2012-10-05T14:01:00.713 に答える