作者Daira (Daira)
看板perl
标题Re: [问题] 我想要比对不在 HTML Tag 之中的文字
时间Sat Jun 10 13:29:05 2006
补充一下我的问题
※ 引述《Daira (Daira)》之铭言:
: 我想在一篇 HTML 的原始码中搜寻并取代资料
: 比方说我可能要找 'HTML' 这个 pattern,然後取代成 '超文字标记语言' 之类的
: 但是我希望找到的是在画面上会显示的 HTML 四个字元
: 而不要它比对到 <html> 或是 </html> 这些 tag 中的 html
: 但是我一直想不出 Regular Expression 要怎麽写
: 所以上来请教大家 >"<
我目前的想法是,只要 pattern 出现在 < 和 > 符号之中,就可以直接忽略掉
但是这个想法不知道要怎麽实作
: 另外,还有一个问题是,如果我想找的是 'm' 这个 pattern
: 可是在 Big5 编码下,他会比对到 '然' 这个中文字(因为下位元码是 'M')
: 我目前的想法是写成
: /((?:[\x01-\x7F]|^)(?:[\x80-\xFF]{2})*|^)m/
: 这样去比对
: 大致上还堪用,可是有一个问题是
: 如果出现连续的两个 'm',第二个 'm' 会没有办法被比对到
: 也是想请教大家有没有解决办法...
: 感谢大家...
我之前有找到一个解决办法是用 use encoding 'big5';
测试过之後还是会有一些奇怪的问题(比方说取代时还是会切到一个中文字)
而且重点是,执行效率有明显的降低...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.67.120.114
※ 编辑: Daira 来自: 203.67.120.114 (06/10 15:03)