use strict;
my $str = '判断时间的合法性
PTA作业链接
https://pintia.cn/problem-sets/1244999401232809984/problems/1245332988779970560
题目要求链接
https://images.ptausercontent.com/218e185f-05fe-4a17-be9b-640b21b74373.pdf
2015/8/5 2:00
';
my $regex = qr/((((([1-9][0-9]((0[48])|([13579][26])|([2468][048])))|(([1-9]((0[48])|([13579][26])|([2468][048]))))|(([13579][26])|([2468][048]))|([48]))|(((([13579][26])|([2468][048]))|[48])00))\/2\/(([1-9])|(1[0-9])|([2][0-9])))|(([1-9][0-9]{0,3})\/((([13578]|1[02])\/([1-9]|[12][0-9]|3[01]))|((([469]|11)\/([1-9]|([12][0-9])|(30)))|(2\/(([1-9])|(1[0-9])|([2][0-8]))))))) ((([02468])|([1][02468])|(2[02])):00)/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html