总的来说,我是正则表达式的新手,在准备秋季学期的 Perl 课程时,我想早点弄湿自己的脚。我仍然围绕着它们,做一些非常基本的事情来了解匹配和替换是如何工作的。所以我写了一个简单的脚本来检查员工的身份证号码是否有效。我提出的简单要求是:
- 必须从 9 开始
- 整数中只能有一个零
如果条件超过一个零,我终生无法弄清楚如何使条件失败。我的代码如下所示:
$s;
print("Please enter your id number: ");
$s = <STDIN>;
if(($s =~ /^9/) && ($s =~ /0{1}/))
{
print("ID is valid\n");
}
else
{
print("ID not valid\n");
}
条件的第二部分 ($s =~ /0{1}/) 我正在阅读为“仅匹配一个零”,但如果数字包含多个零,只要它们不是,它就不起作用重复(例如:90401 返回有效,其中 90091 无效)。我知道这已经成为可能,但我尝试了很多没有解决方案的组合。朝着正确方向的任何一点都是最有帮助的。