我有一个程序的示例输入。他们是
"1866TL",
和"965937","
。
逗号是我要匹配的一部分。
如果输入中有字母字符,我想匹配。
我从@ARGV 得到论点。
$input_line = $ARGV[0];
if ($input_line =~ m/\A\"\d+\D+\d*\",/)
{
print "Bad match\n";
}
else
{
print "Good match\n";
}
如果我替换,.
对于包含 的第一个示例\"
,我会得到我期望的结果,但如果我在正则表达式中加上文字引号,则不会。Bad Match
TL
\"
如何将此输入正确表示为正则表达式?
我错过了如何=~
工作?我期待第一个值"1866TL",
匹配并且程序打印出来Bad Match
。
有趣的是,如果我打印出来$input_line
,认为引号已被剥离并以这种方式搜索,我会得到我所期望的。
$input_line = $ARGV[0];
print $input_line."\n";
if ($input_line =~ m/\A\d+[^0-9]+\d*/)
{
print "Bad match\n";
}
else
{
print "Good match\n";
}
那么,发生了什么?Perl 是否去掉了引号?我还缺少其他东西吗?