2014-01-24 46 views
-1

只想問一些關於如何解析下面的數據並獲得價值的幫助。在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 
+0

什麼是你想要的結果字符串到底是什麼? – grebneke

回答

1

只要做到:

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

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

我喜歡oneliner,它工作得很好。謝謝。 –

+0

@ webdev.gk:不客氣。 – Toto

0

這是你想要的嗎?在到期後解析日期:??

/\s+floating license\s+\S+:\s+(\S+)/ 
+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 

難道你指望什麼呢?

+0

謝謝。這也適用。 –