今天用PHP抓取一个网站的内容,进行内容采集,但是用正则表达式匹配自己想要的东西老是匹配不到,每次匹配到的结果都是空,搞了大半天最后终于了解了,主要就是有些空格和换行你根本就没看到,自己以为是正常的自然换行。这当中自己也试了好多次,但是都没发现,其实这个可以自己一个个增加元素去尝试,看是在增加哪个东西之后发生变化就知道是在这中间可能有问题。所以说在可能匹配不到的地方增加一个(.*)?来匹配空格或者换行符。

比如

hello world

在这个tr和td中间就有一个换行符,因为我中间没有增加一个匹配换行符的东西,所以老是在这个匹配不起来,然后正则也没有什么debug可以查看的,自己尝试了半天。

这边再了解了下正则的修正符。我这边就说一些常用的

平时就iUs这三个符号,这边先说下i就是不区分大小写,然后U就是飞贪婪匹配,就是和(.*)?这个匹配的差不多。然后s就是可以让.匹配到任何字符,包括换行符,本来是匹配不到换行符的还有一个就是x,就是忽略多余的空格!对于正则,只要常用熟悉了,我想也不是那么难的,特别对于一些常出现的状况熟悉了之后!

相关文章:

  • 暂无相关文章