從html中文字中提取email位址和http url,是在做爬蟲時候的經常用到的技術,雖然變成語言本身可以幫助我們找到他們,但是用正規表示式來匹配也是很有用和具有實際意義的方法。
html不是有特別嚴格程式設計要求的,因此在匹配時會遇到很多特殊情況需要特殊處理,這裡僅僅給出一般化的解決方法:
【文字】ddd< input name=dir value=」>」>ddd
【解析】顯然,文字中非轉義字元》與閉尖括號的提取是難點,不能向往常一樣[^>]來提取。
【表示式】 <(「[^」]*」|』[^』]*』|[^』」>])*>
「[^」]*」表示提取雙括號的內容
『[^』]*』表示提取單括號的內容
[^』」>]表示提取其他內容
【注意】也許你用<.*>也能匹配上述文字,但是實際情況時當你遇到的是ddd< input name=dir value=」>」>ddd< / input>時候,它將匹配全部。
【文字】< a href=」>my blog < / a >
【解析】要獲取雙引號或單引號中間的位址,但不是所有雙引號的內容都是link,「href=」很重要
【表示式】href\s*=\s*(「[^」]*」|」[^』]*」|[^」』>]+)
【文字】read the comments at you can find …
【解析】url型別包括:māilto, http, https, ftp
但是有時候文字中並不包含上訴開頭,而是直接以www.baidu.com出現。
【表示式1】
)? 【不包含特殊符號(?!=)的url的表示式】https?://\w+(.\w+)+(\/\w+)*(.\w+)*
【包含特殊符號(?!=)的url簡化表示式】
正規表示式匹配html標籤
1 匹配 import re str result re.match r w str print result 執行結果 說明 html中的 和 匹配時仍舊使用 和 w可以匹配數字 字母 下劃線 希臘字母 俄文本母等 表示至少有0個 匹配任意單字元,除了換行符 n 上述匹配有乙個缺陷,result ...
正規表示式 匹配
字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...
正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 解法 首先要想到用遞迴處理...