Re: [問題] Escape R.E. variable

看板Perl作者 (御風只配做笨木頭)時間21年前 (2004/09/07 10:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《JeffHung (御風只配做笨木頭)》之銘言: : 想請問一下,若今天用 R.E. 要找的字串,是用變數傳進來的,但字串裡,卻內含 : R.E. 的特殊字元,這時該如何 escape 或迴避這樣的問題? : 好比「英文」這個字串,其中「英」字的第二個 byte 是 '^' 字元,若是直接擺 : 在 R.E. 裡,就會找不到。這時,我們可以如 Perl Cookbook 6.18 所述,使用 : /\xAD\x5E/ 寫「英」字,迴避這個問題。但是,如果「英文」這個字串是從變數 : 傳來的,如: : $s = '我的英文寶典'; : $v = '英文'; # 也許是從設定檔裡讀得 : echo "matched" if ($s =~ m/$v/); : 這時,「英」字的第二個 byte,就會攪亂一池春水,使得 match 不成功。請問, : 這時應該怎麼 escape 掉 '^' 字元才好? : ps. 使用 Perl 5.005_03,暫時無法改用 Perl 5.8。 找到解法了: $s = '我的英文寶典'; $v = '\xAD[\\x5E]文'; echo "matched" if ($s =~ m/$v/); -- 我的微笑,堅持要有鼻子。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.204.86.140
文章代碼(AID): #11FHVE-0 (Perl)
討論串 (同標題文章)
文章代碼(AID): #11FHVE-0 (Perl)