1
my ($INV_NB, $USAGE)=split /\|/,"9998|999999999999999";

if ($USAGE=~/^\d{15}\b/)
{
  print "\nUSAGE is Valid\n";
  print "length of $USAGE is ",length($USAGE);  
}

これは期待どおりに機能しましたが、どうすればこの正規表現を無効にできますか?使用法がない場合は言う/^\d{15}\b/

if ($USAGE!=~/^\d{15}\b/)
{
  print "\nUSAGE is Invalid\n";
  print "length of $USAGE is ",length($USAGE);  
}

私はこれを試しましたが、機能していません..

4

3 に答える 3

5

できるよ:

if ($USAGE !~ /^\d{15}\b/)

Perlドキュメント

バイナリ「!〜」は、戻り値が論理的な意味で否定されることを除いて、「=〜」と同じです。

于 2011-06-28T11:29:33.053 に答える
4

他の答えは正しいですが、正規表現を(それを適用する演算子ではなく)否定したい場合は、次を使用できます。

/^(?!.*?$regex_to_be_negated)/s
于 2011-06-28T11:53:44.520 に答える
0

また:

unless ($USAGE=~/^\d{15}\b/)
{
  print "\nUSAGE is Invalid\n";
  print "length of $USAGE is ",length($USAGE);  
}
于 2011-06-28T11:47:45.877 に答える