5.正则表达式

  第五部分开始,我新写的随笔是从python核心编程上总结的,详细查找可以在书中。
  正则表达式是在书籍的第一章节。

之前写过一些爬虫的程序,所以对这方面还是挺熟悉的。不过既然是笔记就截取点容易忘的,当做笔记了。
  在python中主要的正则表达式的库是re模块,但是对于爬虫来说,针对html的结构的爬取还有其他更方便的库,例如Xpath等,这在我写的新浪爬虫中都有。
以下贴以下正则的用法:


5.正则表达式_第1张图片

5.正则表达式_第2张图片

以上就是一些正则的表达式的意义。

特别需要注意的一点是,在匹配特殊字符的时候需要使用转义符号\,比如匹配点时候要用.,否则就会和上边图中的.所冲突。
以下是re模块中的一些常用的函数:


5.正则表达式_第3张图片

5.正则表达式_第4张图片

?=表示的意义是
这个叫断言,只匹配一个位置比如,你想匹配一个“人”字,但是你只想匹配中国人的人字,不想匹配法国人的人
就可以用一下表达式(?=中国)人所以,表达式与其他通配符连用才能起到效果。
(?=.*[[a-z])\d+这个就表示 匹配以“任意字符连着一个小写字母”开头的数字,只匹配数字。
与之相对的是(?<=exp)这个是放后面的。
另外还需要注意的一点是在字符串前加上r,表示原始字符串,即字符串中的所有符号都表示一个字符,而没有特殊含义。
例如:r'\tss' 输出之后为\ss,而没有r则输出为 ss,即前边一个tab,后边两个ss。
最后,对于想要更深入研究正则表达式的,建议阅读由 Jeffrey E. F. Friedl.编写的Mastering Regular Expressions

你可能感兴趣的:(5.正则表达式)