Perl匹配下面一个语句出错:$line 文件如下Chassis G1234 TC80-12M$line m/^Chassis\s+(\w{5,12})\s+(\w{2,9})\s+/ ;$a=$1; $b=$2;print $a"\n";print $b"\n"; # 这个值一直为空,由于TC80-12M 中有一个“-”,导致匹配失败,如何
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 21:54:37
![Perl匹配下面一个语句出错:$line 文件如下Chassis G1234 TC80-12M$line m/^Chassis\s+(\w{5,12})\s+(\w{2,9})\s+/ ;$a=$1; $b=$2;print $a](/uploads/image/z/12464142-6-2.jpg?t=Perl%E5%8C%B9%E9%85%8D%E4%B8%8B%E9%9D%A2%E4%B8%80%E4%B8%AA%E8%AF%AD%E5%8F%A5%E5%87%BA%E9%94%99%EF%BC%9A%24line+%E6%96%87%E4%BB%B6%E5%A6%82%E4%B8%8BChassis+G1234+TC80-12M%24line+m%2F%5EChassis%5Cs%2B%28%5Cw%7B5%2C12%7D%29%5Cs%2B%28%5Cw%7B2%2C9%7D%29%5Cs%2B%2F+%3B%24a%3D%241%3B+%24b%3D%242%3Bprint+%24a%22%5Cn%22%3Bprint+%24b%22%5Cn%22%3B+%23+%E8%BF%99%E4%B8%AA%E5%80%BC%E4%B8%80%E7%9B%B4%E4%B8%BA%E7%A9%BA%2C%E7%94%B1%E4%BA%8ETC80-12M+%E4%B8%AD%E6%9C%89%E4%B8%80%E4%B8%AA%E2%80%9C-%E2%80%9D%2C%E5%AF%BC%E8%87%B4%E5%8C%B9%E9%85%8D%E5%A4%B1%E8%B4%A5%2C%E5%A6%82%E4%BD%95)
Perl匹配下面一个语句出错:$line 文件如下Chassis G1234 TC80-12M$line m/^Chassis\s+(\w{5,12})\s+(\w{2,9})\s+/ ;$a=$1; $b=$2;print $a"\n";print $b"\n"; # 这个值一直为空,由于TC80-12M 中有一个“-”,导致匹配失败,如何
Perl匹配下面一个语句出错:
$line 文件如下
Chassis G1234 TC80-12M
$line m/^Chassis\s+(\w{5,12})\s+(\w{2,9})\s+/ ;
$a=$1; $b=$2;
print $a"\n";
print $b"\n"; # 这个值一直为空,由于TC80-12M 中有一个“-”,导致匹配失败,如何改表达式使之能正确匹配到“TC80-12M”?
如果$line 的内容为下面的其中一行,第二行这次不是“-”,而是一个空格,怎么样用一个通用的表达式把“TC80-12M”和“TC80 12M”匹配出来.
Chassis G1234 TC80-12M
Chassis G1234 TC80 12M
Jul 6,2011
由于初学,输入太少,只能写出下面的匹配语句,可以勉强完成"TC80-12M"&"TC80 12M"&"TC8012M",
$line m/^Chassis\s+(\w{5,12})\s+(\w{4,15})(\-|\s+)(\w+)/ ; # 如后面加g,匹配不完整,会漏掉空格和“-”后面部分.
$a=$1; $b=$2;$c=$3;
if ($3)
{
$line m/^Chassis\s+(\w{5,12})\s+(\w+(\-|?:\s+)\w+)/g ;
$a=$1; $b=$2;
}else{
$line m/^Chassis\s+(\w{5,12})\s+(\w{4,15})/ ;
}
print $a"\n ";
print $b"\n";
Perl匹配下面一个语句出错:$line 文件如下Chassis G1234 TC80-12M$line m/^Chassis\s+(\w{5,12})\s+(\w{2,9})\s+/ ;$a=$1; $b=$2;print $a"\n";print $b"\n"; # 这个值一直为空,由于TC80-12M 中有一个“-”,导致匹配失败,如何
模糊的,需要“TC80-12M”和“TC80 12M”最后一列出现.
m/Chassis\s+(\w+)\s+(.+)/g;
准确点的,使用或运算符(|),
m/Chassis\s+(\w+)\s+(\w+(?:\s|\-)\w+)/g;