32 ビット整数以外のものに一致する正規表現を考え出そうとしています。私の最終的な目標は、次の形式ではない行を一致させることです
Integer\tInteger\tInteger\tInteger\tInteger\tInteger\tInteger
(7 つの 32 ビット整数と各整数の間に 1 つのタブ)
これまでのところ、私はこれを思いついた
#!/usr/bin/perl -w
use strict;
while ( my $line = <> ) {
if ( $line =~ /^(429496729[0-6]|42949672[0-8]\d|4294967[01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|[1-3]\d{9}|[1-9]\d{8}|[1-9]\d{7}|[1-9]\d{6}|[1-9]\d{5}|[1-9]\d{4}|[1-9]\d{3}|[1-9]\d{2}|[1-9]\d|\d)$/ ) {
print "Match at line $.\n";
print "$line"
}
}
しかし、正規表現を32ビットの数字に一致させる最初のステップにさえ到達できません(その問題に取り組んだら、タブを必要な方法にすることに取り組むことができます)
この問題を正しい方法で解決していますか? 何かご意見は?