2013-02-07 37 views
-1

我想用字符串2替換下面的行(string1)。任何想法我應該如何在Perl中做到這一點?在perl中的模式替換

$string1=project/Import/files/mymux.v 

替換=>project/micro/target_lib/MYMUX/functional/verilog.v

在替換字符串,微,target_lib,Verilog和功能性是恆定的東西。我只需要將mymux.v分解爲MYMUX和verilog.v。任何幫助,將不勝感激!

問候, 桑迪普

+0

$字符串1 =〜S /導入\ /文件/微\/target_lib/ – sanforyou

+0

我沒有任何想法,我怎麼可以拆分,mymux.v成MYMUX和verilog.v – sanforyou

回答

3
my ($n) = $string1 =~ m{/([^/]+)\.v\z} 
    or die; 

my $string2 = 'project/micro/target_lib/'.uc($n).'/functional/verilog.v'; 
+0

感謝ikegami提示答案。 – sanforyou

+0

這裏的一個問題是,.v擴展不是一個常量,它有時可能是.sv,所以我試圖將verilog.v分成兩部分,verilog和.v,以便代碼可以與任何擴展一起使用。 – sanforyou

+0

另外我嘗試了你的方法,它死於第一行。 – sanforyou