use strict; use warnings; while () { next unless /^\d+\|(\d+?)\|/ and $1 == 1; if (/^(.*\|)*.*ABC\.pi=([\d.]+|[\w.]+)*.*ABC\.id=(\d+|[\w.]+).*$/) { print "$1$2|$3\n"; } else { print "Exception: $_"; } }