我正在尝试对字符串 $price 的格式进行错误检查
该字符串将以货币符号开头。(由于货币符号太多,我将跳过它,因此在下面将其显示为?)
因此正确的格式是“?12.34”或“?2.34”或“?2.34”,错误的格式是“1234”/“234”
因此,首先我使用全局搜索(现在是有趣的正则表达式)检查小数的负匹配,我尝试检查负数(即不符合)一位或两位 0-9 的数字,小数后跟两位 0-9 的数字。我想出了以下(未经测试的)理论模式。由于这是我的第一个复杂正则表达式,我做对了吗?
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'';