作者JeffHung (御风只配做笨木头)
看板perl
标题[问题] Escape R.E. variable
时间Tue Sep 7 09:30:18 2004
想请问一下,若今天用 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