正規表現処理で先読みと後読みに頭を悩ませようとしています。
PID などをリストしたファイルがあるとします。PID 形式\d{1,5}に一致する正規表現を作成したいのですが、特定の PID も除外されます。
$myself = $$;
@file = `cat $FILE`;
@pids = grep /\d{1,5}(?<!$myself)/, @file;
この正規表現では、(?<!TO_EXCLUDE)コンストラクトを使用して、否定的な後読みを使用して、数字の一致と除外を組み合わせようとしています。これはうまくいきません。
サンプルファイル:
456
789
4567
345
22743
root
bin
sys
誰かが私を正しい方向に向けることができれば幸いです。
また、この否定的な後読みがこのシナリオで最も効率的かどうかを調べることにも興味があります。