【发布时间】:2015-09-23 04:27:46
【问题描述】:
我有一个文件,其中包含以下几行
1.39.2.1 Build 001
1.39.1.2 Build 002
1.39.1.1 Rejected Build
1.39 Succesful Build 004
我正在尝试打印“1.39 Succesful Build 004”行 下面是我的 perl 脚本
my $file = 'C:\labels.txt';
open(FILE,$file) or die ("Cannot the open the file : $file");
my $ver = "1.39";
my @arr;
foreach (FILE)
{
if($_ =~ m/1.39/)
{
print $line;
}
}
close(FILE);
当我运行此脚本时,它会打印所有行(包括 1.39.x.x)。但我想要正好有 1.39 的线。怎么能搜到呢。
感谢任何帮助。
【问题讨论】:
-
我尝试使用 ($_ =~ m/^1.39$/),在这种情况下不打印任何行。
-
它不起作用,因为
^1.39$将尝试查找开头为 1 且结尾为 9 的行。你没有这样的台词。 -
如果你想要
1.39来自1.39.2.1,你需要在你的正则表达式中捕获它们。if($_ =~ m/(1.39)/)结果将在$1中。 -
感谢您的时间和精力。