我不知道如何僅使用$mypath=~s/.....將/usr/lib更改為/synopsys/vcs/lib/ ; 有沒有辦法做到這一點?
$mypath = "/usr/lib";
$mypath =~ s/usr/synopsys/lib//g;
print "$mypath\n";```
uj5u.com熱心網友回復:
/是一個特殊字符,因為它被用作分隔符。如果因此需要轉義。
$mypath =~ s/\/usr\/lib/\/synopsys\/vcs\/lib\//;
但是,使用替代分隔符意味著我們不需要所有這些轉義符。
$mypath =~ s{/usr/lib}{/synopsys/vcs/lib/};
這將替換/usr/lib string中包含的第一個實體。如果你想替換/usr/lib整個字串,我會使用
$mypath = "/synopsys/vcs/lib/" if $mypath eq "/usr/lib";
uj5u.com熱心網友回復:
正則運算式替換的作業方式類似于s/match this / replace with this /
在 perl 中,您需要使用反斜杠轉義正斜杠 /\
然后使用括號捕獲usr\/到$1
So 作為您的示例:
$mypath =~ s/(usr\/)/$1synopsys\//;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/371910.html
標籤:perl
