私は簡単な質問があります..
特定のマルチライン インスタンスを照合しようとしています。問題は、コードを実行すると、ファイル全体ではなく、編集したものだけが出力されることです。
例えば。これは私の入力です:
JJJ
1234 123.00 1234.28 123456.00 1234567.72 constant
ld;afksd;l REst of file blah blah blah...rest of file and other info I neeed etc.
私の目標は取得することです:
JJJ 1234 123.00 1234.28 123456.00 1234567.72 constant
ld;afksd;l REst of file blah blah blah...rest of file and other info I neeed etc.
JJJ
したがって、基本的には、1 つ以上の大文字の行またはその他のバリエーションまでデータを丸呑みしようとしています。
ただし、これを行うと、次のようになります。
JJJ 1234 123.00 1234.28 123456.00 1234567.72 constant
私はそれだけを取得し、ファイルに必要な他の情報は取得しません。簡単な解決策があることは知っていますが、私は非常に慣れperl
ていないため、よくわかりません。
これが私のコードです。おそらく、あなたの中には提案があるでしょう。
use File::Slurp;
my $text = read_file( 'posf.txt' );
while ($text =~ /(^[A-Z]+)(\d+.*?\.\d+ Acquired$)/gism) {
$captured = $1." ".$2;
$captured =~ s/\n//gi;
print $captured."\n";
}
どんな助けでも素晴らしいでしょう。プログラムに「キャプチャ済み」を印刷するように指示しているだけであることはわかっていますが、ファイルの残りの部分を印刷して、行を目的の位置まで丸呑みする方法がわかりません。
私の質問が理にかなっていて、理解するのが難しくないことを願っています。さらに問い合わせることができるかどうか教えてください.