相关疑难解决方法(0)

如何使用正则表达式验证月份输入?

我正在设置此示例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");
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它正确地从01-12过滤但是当我将正则表达式更改为:

$month = "(0?[1-9]|1[012])";
Run Code Online (Sandbox Code Playgroud)

然后正则表达式允许13,14等...给出了什么?

regex perl

15
推荐指数
3
解决办法
4万
查看次数

标签 统计

perl ×1

regex ×1