作者cenda (在我們的城市)
看板Perl
標題[問題] 搜尋取代字串包含雙引號
時間Fri Oct 5 15:48:33 2012
小弟是Perl的初學者
都是靠GOOGLE大神教我的
這邊我遇到一個問題
就是我在搜尋字串並且取代的時候
因為要搜尋的字串包含雙引號 "
所以一直無法正確搜尋並且取代
請高手賜教 感謝
my $ps = qq/system("ps >& ps.log");/;
my $markps = qq/#system("ps >& ps.log");/;
open (PS, "<A.pl");
my @PS =<PS>;
close (PS);
for my $RegLine(@PS)
{
if ($RegLine =~ s/$ps/$markps/g)
{
open (PS, ">A.pl");
print PS @PS;
close (PS);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.235.207.136
1F:→ cibs:試試 my $ps = qq/system\\("ps >& ps.log"\\);/; 10/05 17:14
2F:→ cibs:以 \ 在 qq// 裡面讓 \ 跳脫出來 10/05 17:15
3F:→ cibs:再以剛剛跳脫後的 \ 在 s/// 裡面讓 ( 和 ) 跳脫出來 10/05 17:15
4F:推 micangela:可以使用 $RegLine =~ s/\Q$ps\E/$markps/g 10/05 21:21
5F:推 micangela:\Q...\E 能把所有東西跳脫開來 10/05 21:24
6F:→ micangela:詳情可搜尋quotemeta 10/05 21:24
7F:→ flu:不用\Q...\E的話 $ps中的() 就要作escape 10/05 21:41
8F:→ flu:剛剛發現從perl 5.14~5.16 quotemeta()的說明篇幅多了不少 10/05 22:07
9F:→ cenda:多謝指教~~ 我再去研究一下quotemeta ! 10/08 09:33