正则表达式条目众多、纷繁复杂,我在接触正则的时候就感觉有些摸不着头脑,甚至到现在为止也理得不是很清。每次想要去记一下表达式具体含义时,都会因为太多而不了了之,就想如果用到现查也是不错的选择。
但是有两个正则是我每个爬虫任务都必用的,这两个万金油的正则表达就是**(.*?)和 \ **。在之前所做过的爬虫中我都用这个正则把想要的字给匹配出来,以至于我只会这一个爬虫的匹配字段方式,而没有去接触和了解其他的匹配技术,这是有些遗憾的 。
(.*?)用法简而概之就是:
1.明确原始字符串(其中包含目标字段)和目标字段
2.在原始字符串中找到包含目标字段的句话或者一行或者一段,用(.*?)来替换目标字段。也可以理解为 .*? 替换目标字段,然后用括号把目标字段括起来。
3.匹配的代码是:
re.findall('包含目标字段的一句话或者一行或者一段',原始字符串名,re.S)
###包含目标字段的一句话或者一行或者一段就是从原始字符串里摘出来的一部分,必须要保证目标字段包含在内,并且前后都要有内容。这里有几个注意事