在Perl中解析和获取数据

时间:2014-01-24 13:21:26

标签: regex perl

只想询问一些有关如何解析下面数据并获取值的帮助。

我有一个大文件,其中包含如下所示的内容,我想获得浮动许可证到期的价值。如您所见,左侧有2个空格,许可证后还有额外的空间。

"Office" v10.8, vendor: Microsoft
  License server: hosts.server.com
  floating license  expires: 01-mar-2019

我尝试了下面的示例,但它不起作用。

$floatlic =~ /\sfloating license (\s+|)(\w+|_): (\S+)/

我想看到的结果是“01-mar-2019”,我可以把它放在另一个变量中,如

$floatlicexpiration

3 个答案:

答案 0 :(得分:1)

my $floatlic = "\"Office\" v10.8, vendor: Microsoft
 License server: hosts.server.com
  floating license  expires: 01-mar-2019
";
$floatlic =~ /floating\s+license\s+expires:\s+(\S+)/sg;
print $1;

打印

01-mar-2019

这是你期望的吗?

答案 1 :(得分:1)

只是做:

$floatlic =~ /\sfloating license (\s+|)(\w+|_): (\S+)/
$floatlicexpiration = $3;

my ($floatlicexpiration) = $floatlic  =~ /\sfloating license\s+\w+: (\S+)/;

答案 2 :(得分:0)

这是你想要的吗?解析过期后的日期:??

/\s+floating license\s+\S+:\s+(\S+)/