Ich versuche, das Format einer Zeichenfolge $price auf Fehler zu überprüfen
Die Zeichenfolge beginnt mit einem Währungssymbol. (Da es so viele davon gibt, werde ich das überspringen und es daher unten als ? anzeigen.)
Die RICHTIGEN Formate sind also "?12.34" oder "? 2.34" oder "?2.34". Falsch wäre "1234" / "234".
Also suche ich zuerst nach der negativen Übereinstimmung für eine Dezimalzahl. Dazu verwende ich eine globale Suche (jetzt der lustige reguläre Ausdruck). Ich versuche, das NEGATIVE (d. h. NICHT konform mit) einer oder zwei Ziffern 0-9 zu finden, eine Dezimalzahl gefolgt von zwei Ziffern 0-9. Ich bin auf das folgende (ungetestete) theoretische Muster gestoßen. Da es mein erster komplexer regulärer Ausdruck ist, habe ich es richtig gemacht?
if ($price eq ''){
say'';
say 'You did not enter any price. Try again';
say'';
}
elsif ($price !~ /\./g ){
say'';
say 'Please include a decimal point';
say'';
}
elsif ($price !~ /[0-9]{1,2}\.[0-9]{2}$/){
say'';
say 'Please check the format of price (XX.XX)';
say'';