我正在设置这个示例Perl代码片段,以便在一个日期中验证几个月:
我想要接受的一些场景是:
MM M
#!/usr/bin/perl
use strict;
use warnings;
my $pattern;
my $month = "(0[1-9]|1[012])";
my $day = "(0[1-9]|[12]\d|3[01])";
system("cls");
do {
print "Enter in a month: ";
chomp($pattern = <STDIN>);
# We only want to print if the pattern matches
print "Pattern matches\n" if ($pattern =~ /$month/);
} while ($pattern ne "Q");当我运行它时,它正确地过滤了01-12,但当我将正则表达式更改为:
$month = "(0?[1-9]|1[012])";然后正则表达式允许13、14等...怎么回事?
发布于 2018-01-23 15:14:06
要测试month / year:
^(0?[1-9]|1[012])\/([2-9][0-9)]{3})$https://stackoverflow.com/questions/2137929
复制相似问题