2013-07-30 70 views
-7

我有一個變量當前的服務器時間,我需要用我的變量中存在的值替換AT=2013/07/31-10:08:41。我如何在Perl中替換它?如何在perl中訪問和替換?

get(J=tesr,T=Bp,Act=A_Ti,AT=2013/07/31-10:08:41); 
+1

http://stackoverflow.com/questions/17927136/how-to的第一天-substitute-dates-in-perl/17927285#17927285 – RobEarl

回答

0

這個操作是指::

http://perldoc.perl.org/functions/s.html

您可以通過一個簡單的谷歌搜索找到有關這一操作的淨很多教程使用替換操作,以獲取更多信息。

+0

是的,我知道替代操作符..但在這種情況下AT = 2013/07/31-10:08:41將不會是恆定的..每次我hv獲取AT的值並進行替換。如何獲取是我想知道的! – user1954970

0

如果這是一個字符串(也許從一個配置文件),這個工程:

use warnings; 
use strict; 

my $string = 'get(J=tesr,T=Bp,Act=A_Ti,AT=2013/07/31-10:08:41);'; 
$string =~ /AT=(.+)\);/; 
my $new_time = 'new_time'; 
$string =~ s/$1/$new_time/; 
print $string; 

當然,你有你的服務器的時間,以取代「NEW_TIME」。下次,請先檢查拼寫。

0

這是利用設置在另一個變量($ NEW_TIME在這種情況下),一次更換AT值

my $str = "get(J=tesr,T=Bp,Act=A_Ti,AT=2013/07/31-10:08:41);"; 

my $new_time = "2013/08/01-02:05:24"; 

$str =~ s/(AT=)(\d{4}\/(0[1-9]|1[0-2])\/([0-2][1-9]|3[0-1])-([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])/$1$new_time/g; 

print "$str\n";