第五部分開始,我新寫的隨筆是從python核心編程上總結(jié)的蒿讥,詳細查找可以在書中。
正則表達式是在書籍的第一章節(jié)。
之前寫過一些爬蟲的程序芋绸,所以對這方面還是挺熟悉的媒殉。不過既然是筆記就截取點容易忘的,當做筆記了摔敛。
在python中主要的正則表達式的庫是re模塊廷蓉,但是對于爬蟲來說,針對html的結(jié)構(gòu)的爬取還有其他更方便的庫马昙,例如Xpath等苦酱,這在我寫的新浪爬蟲中都有。
以下貼以下正則的用法:
以上就是一些正則的表達式的意義给猾。
特別需要注意的一點是,在匹配特殊字符的時候需要使用轉(zhuǎn)義符號\颂跨,比如匹配點時候要用.敢伸,否則就會和上邊圖中的.所沖突。
以下是re模塊中的一些常用的函數(shù):
恒削?=表示的意義是
這個叫斷言池颈,只匹配一個位置比如,你想匹配一個“人”字钓丰,但是你只想匹配中國人的人字躯砰,不想匹配法國人的人
就可以用一下表達式(?=中國)人所以,表達式與其他通配符連用才能起到效果携丁。
(?=.*[[a-z])\d+這個就表示 匹配以“任意字符連著一個小寫字母”開頭的數(shù)字琢歇,只匹配數(shù)字。
與之相對的是(?<=exp)這個是放后面的梦鉴。
另外還需要注意的一點是在字符串前加上r李茫,表示原始字符串,即字符串中的所有符號都表示一個字符肥橙,而沒有特殊含義魄宏。
例如:r'\tss' 輸出之后為\ss,而沒有r則輸出為 ss存筏,即前邊一個tab宠互,后邊兩個ss。
最后椭坚,對于想要更深入研究正則表達式的予跌,建議閱讀由 Jeffrey E. F. Friedl.編寫的Mastering Regular Expressions