Re: [問題] 精確比對

看板Perl作者 (南瓜)時間17年前 (2008/07/16 13:53), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《DreamYEN (我本善良)》之銘言: : 剛接觸perl不久,有些東西搞不太懂 : 請問些很淺的問題 : 假設有20個pattern a1 a2 a3 .. a20 : 當我用一個while去做替換 : while ($line = <>) { : if ($line =~ s/a1/b1/g) : } : 這樣子做的話,會連 a11 ~ a19的 a1 都被替換掉 : 不知道有什麼方法可以精確的只比到想要的字串呢 if ($line =~ s/a1([^\d])/b1$1/g) 像這樣把後面接著其他數字的 pattern 排除掉如何? : 另一個問題,當宣告一個陣列 : my @a = 0; : 這樣子只會給這個陣列中的第一個值設定 : 不知道是否可以像 c 一樣設定陣列的大小與初始值 : int a[10] = {0}; : 麻煩可以幫我解答這些簡單的問題..謝謝 目前想到的寫法是像這樣: my @arr; # 宣告一個陣列,目前它的大小為 0 $arr[10] = 0; # 現在這個陣列的大小是 11 @arr = map { 0 } @arr; # 把陣列裡每個元素的值都變成 0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.23.102

07/16 18:27, , 1F
謝謝你的回應
07/16 18:27, 1F

07/16 18:27, , 2F
後來我是在 a1 後面加上一個空白,這樣子就不錯判斷錯
07/16 18:27, 2F

07/16 18:28, , 3F
雖然很暴力,但是至少可能跑^^"
07/16 18:28, 3F
文章代碼(AID): #18VOpWnL (Perl)
討論串 (同標題文章)
本文引述了以下文章的的內容:
2
3
完整討論串 (本文為第 2 之 2 篇):
2
3
文章代碼(AID): #18VOpWnL (Perl)