0

ピリオドの後に 2 または 3 文字 (英数字) が続き、別のピリオドで終わる一致する文字列の前に改行を挿入するのに苦労しています。可能であれば、これはファイル全体に作用する単一のステートメントである必要があります。

何かのようなもの (?):

$contents =~ s/\.{2,3}\./\n\.<what goes here?>\./g;

具体的には、2 段階のプロセスで多くのカタログ レコードのファイルを処理しています。ステップ 1: ファイルからすべてのキャリッジ リターンを削除します。ステップ 2: .AUTH などのテキスト文字列を検索します。および.RE. さらには.856。これらのそれぞれを新しい行の先頭にします。長い一連の特定の置換でこれを行うことができます。

$contents=~s/\.RE\./\n\.RE\./g;
$contents=~s/\.AUTH\./\n\.AUTH\./g;
$contents=~s/\.TITL\./\n\.TITL\./g;

しかし、私の理解では、単一のステートメントでこれをより効率的に行うこともできます (正規表現の組み込み変数を使用しますか?)

ありがとう、

トム

4

2 に答える 2