作者gugod (gg)
看板perl
标题Re: [问题] 我想要比对不在 HTML Tag 之中的文字
时间Thu Jun 29 01:58:12 2006
※ 引述《Daira (Daira)》之铭言:
: 而不要它比对到 <html> 或是 </html> 这些 tag 中的 html
试试看这个,我把说明直接写在里面。假设你整个 HTML 内容全读进 $_ 里了
s{(?<! # negative look-behind
< # 找 <
/? # 可能带有一个斜线
)
html # 找 html 四个字
(?! # negative look-ahead
.*? # 在 tag 中间的 attributes 等东西
> # 找到 >
)
}{超文字标记语言}gsx
不加注解的可以缩短成这样
s{(<?<!</?)html(?!.*>)}{超文字标记语言}gs
如果说你有个字典的 hash 的话,假设叫做 %dict 好了,那麽就可以改成
s{<?<!</?)(.*?)(?!.*>)}{$dict{$1}}gs
这整句话的意思是:
「把前面不带 </? ,而後面不跟着 .*> 的 (.*?) 换成 $dict{$1}」
Cheers,
Kang-min Liu
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.22.54.223
1F:推 ljiv:赞!! 06/29 13:34