[問題] Escape R.E. variable
想請問一下,若今天用 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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章