常用正則表達式
如果沒猜錯的話當大家看了我寫的python爬蟲系列二的話我想你們心中一定有千萬匹馬兒跑過,其實我想說的是關于上篇表達式的內容你們只需要了解一下即可因為上篇主要是為了引入一些概念來解釋爬蟲爬的到底是啥,感受感受。那么接下來我就來介紹一些常用的內容
\w 匹配字母數字及下劃線
\W 匹配非字母數字及下劃線
\s 匹配任意空白字符,等價于 [\t\n\r\f].
\S 匹配任意非空字符
\d 匹配任意數字,等價于 [0-9].
\D 匹配任意非數字
re.I 忽略大小寫
re.M 多行模式
re.S 即為 . 并且包括換行符在內的任意字符(. 不包括換行符)
集字符[ ]
* 表示一個元素可出現0或多次
+表示出現一次或多次
?非貪婪模式
( )子模式
{ }一個元素或模式出現{m,n}m到n次,n可以不寫為至少幾次{m,}
實戰演練
字符串python
import
re
string
=
'python'
#我們匹配出python
path
=
re
.
compile
(
'p\w\w\w\wn'
,
re
.
I
)
path
.
findall
(
string
)
#這里和re.findall(path,string)是一樣的
這里我們用了\w來匹配。接下來我集字符和*
import
re
string
=
'python'
#我們匹配出python
path
=
re
.
compile
(
'p
[
y
-
z
]
*
thon
,
re
.
I
)
path
.
findall
(
string
)
也可以這樣`
import
re
string
=
'python'
#我們匹配出python
path
=
re
.
compile
(
'p.*'
,
re
.
I
)
path
.
findall
(
string
)
或者
import
re
string
=
'python'
#我們匹配出python
path
=
re
.
compile
(
'py
{
0
,
1
}
.
*
,
re
.
I
)
path
.
findall
(
string
)
接下來是貪婪模式和非貪婪模式(默認貪婪)
string= pythonnn
import
re
string
=
'pythonnn'
#我們匹配出python
path
=
re
.
compile
(
'p
.
*
n
,
re
.
I
)
path
.
findall
(
string
)
你會發現你匹配的是pythonnn
所以我們加個?
import
re
string
=
'python'
#我們匹配出python
path
=
re
.
compile
(
'p
.
*
?n
,
re
.
I
)
path
.
findall
(
string
)
最后請出我們的()
這個是什么呢,演示一下
import
re
string
=
'python'
#我們匹配出ython
path
=
re
.
compile
(
'p(.*)'
,
re
.
I
)
path
.
findall
(
string
)
#改一下又是什么呢我們匹配thon
path
=
re
.
compile
(
'y(.*)'
,
re
.
I
)
path
.
findall
(
string
)
結果我想你已經猜到了吧?來慢慢想一下敲一下。那么常用的基本上就這樣上一篇不要求你一定要記下來但是這一篇如果你想要成為高手,最好記住!!!
這里還要強調一個點那就是匹配特殊元素比如www.python.ory中.可以表示任意元素所以它可以和wwwxpythonmory匹配所以要對其轉義但是要加\ \轉義即 :www\\.python\\.ory或者r’www\.python\.ory’或者直接用re.escape()方法
自動搜索爬蟲
看名字你可能覺得好高大上好像不是我等可以接觸的,其實不然。現在打開你的瀏覽器
輸入如下內容/s wd=python
猜到什么了么!!下篇繼續(介紹實戰完urllib.request再來解析庫和request不要著急慢慢來)
日常名言結束: 經驗顯示,成功多因于赤忱,而少出于能力。勝利者就是把自己身體和靈魂都獻給工作的人。—— 查爾斯·巴克斯頓
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
