我们可以用现成的很多工具来解析HTML。但我想如果能用正则表达式来做一些先期处理, 剪裁掉不必要的内容或者抽取出必要的内容。这样也许可以获得更高的效率。当然使用正则表达式是否能获得更高的效率,这一点恐怕还不能得到验证。
我想还是先做些具体的事情,效率的问题我们可以慢慢考证。
1. 获取图片的源地址:
(?si)<img.*?src=[',",/s]*(.*?)[',",/s,>]
这个表达式不是抽取完整的<img *** >标签。因为我们只关心img 标签中的 src 属性,所以小括号中是我们真正获取的内容:(.*?)。[',",/s]*匹配了等号后是单引号、双引号或者是空格的情况。[',",/s,>]匹配了源地址后面是单引号、双引号或者是空格的情况。
(?si)匹配了忽略大小写和一行匹配(可能不是很确切,请查相关资料)。其中(?i)代表匹配大写和小写。