[問題] Escape R.E. variable

看板Perl作者 (御風只配做笨木頭)時間21年前 (2004/09/07 09:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
想請問一下,若今天用 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。 -- 我的微笑,堅持要有鼻子。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.204.86.140
文章代碼(AID): #11FGqoGc (Perl)
討論串 (同標題文章)
文章代碼(AID): #11FGqoGc (Perl)