私の要件は、+(たとえば:ABC + DEF)の文字列を渡すことです。 actual_stateの値と一致する必要があります。値はABC+DEF ABC+DEF, ABC+DEF,,
などです。ABC + DEFの後にカンマが1つ以上あることがあります。しかし、それはABC+DEF, PQR-SL
と一致しません。以下は正規表現では〜〜を理解できません
コードである私が試したどのようなスニペット:
sub verify_state{
my $expected_state = shift;
my $vol = 'vol';
my $actual_state = 'ABC+DEF,';
print "Verify backend state for $vol\n";
print "Expected backend state for $vol = $expected_state\n";
print "Actual backend state for $vol = $actual_state\n";
if ($expected_state !~ /$actual_state,*$/) {
print
"Expected state was $expected_state but got $actual_state for $vol\n"
;
return 0;
}
return 1;
}
my $val = verify_state('ABC+DEF');
print $val,"\n";
私はABC+DEF
を渡しますならば、それは私に1を返す必要があります。 0の値ABC+DEF ABC+DEF, ABC+DEF,,
は、特定のキーなどのハッシュ値の一部として来ているので、私はmy $actual_state = 'ABC+DEF,';
を書いたなぜ私はABC+DEF, PQR-SL
に合格するかどうか。 my $actual_state = $status->{state};
。
あなたの説明はあまり明確ではありません。あなたは質問を編集して、あなたが入れた文字列ごとに期待される出力のリストを作成できますか?あなたのパターンが間違っているように聞こえますが、私はあなたがしようとしていることを理解していません。 – simbabque
'!〜'は*が一致しないことを意味します*(単に '=〜'と論理的に反対です) – rustyx
@simbabque、私の場合はactual_stateはABC + DEF ABC + DEF、ABC + DEF私はそれを支配していませんが、私が渡しているものはここでは一定です。つまり、ABC + DEFです。私は否定的にABC + DEFとactual_stateとそこにあるものとを一致させようとしています。私は、ABC + DEF!〜ABC + DEFまたはABC + DEF!〜ABC + DEF、またはABC + DEF!〜ABC + DEF ,,を意味します。すべての場合、それは偽であり、1を返すべきです。 – Satya