Python 爬蟲_Regex

來源:互聯網
上載者:User

標籤:.text   imp   requests   url   htm   轉義   port   運算式   more   

用來對字串操作的一種邏輯方式, 對字串的一種過濾邏輯。
運算式全集: http://tool.oschina.net/uploads/apidocs/jquery/regexp.html

1. 

1. re.match ==>嘗試從字串的起始位置匹配一個模式,如果第一個字元不嫩匹配,則不能正常匹配        re.match(pattern,sring,flags=0)

2. 匹配目標:

import re        content=‘Hello 1234567 world_this is a regex demo‘        result=re.match(‘^Hello\s(\d+)\sworld.*demo$‘,content)    #Regex        print(result.group(1))    #輸出第一個括弧的內容        print(result.span())     #輸出輸出字串的數量

3. 貪婪匹配:

import re        content=‘Hello 1234567 world_this is a regex demo‘        result=re.match(‘^He.*(\d+)\sworld.*demo$‘,content)            print(result.group(1))    #只能輸出7
#非貪婪匹配        import re        content=‘Hello 1234567 world_this is a regex demo‘        result=re.match(‘^He.*?(\d+).*demo$‘,content)            print(result.group(1))     #輸出1234567
#匹配模式:        import re        content=‘‘‘Hello 1234567 world_this         is a regex demo        ‘‘‘        result=re.match(‘^He.*?(\d+).*?demo$‘,content,re.s)    #re.s 是匹配分行符號的        print(result.group(1))    #輸出1234567

4. 轉義: 特殊字元需要轉義

import re        content=‘price is $500‘        result=re.match(‘price is \$500\‘,content)     #轉義之後才能匹配

5. re.search: 掃描字串,返回第一個匹配的字元,能用search就不用match

import re        content=‘Hello 1234567 world_this is a regex demo‘        result=re.search(‘Hello\s(\d+)\sworld.*demo$‘,content)     #輸出全部字串

6. re.findall

results=re.findall(‘Regex‘,html,re.S)        for result in results:        print(result)        print(result[1],result[2]...)

7. re.sub: 字串替換

import re        content=‘Hello 1234567 world_this is a regex demo extra stings‘        content=re.sub(‘\d+‘,‘‘,content)

8. re.compile: 把字串編譯成Regex

import re        content=‘‘‘Hello 1234567 world_this         is a regex demo        ‘‘‘        result=re.compile(‘hello.*demo‘,re.s)    #re.s 是匹配分行符號的        result=re.match(pattern,content)
#實戰練習:        import requests        import re        content=requests.get(‘http://book.doubancom/‘).text        patten=re.compile(‘<li,*cover.*?href="(.*?)".*?title="(.*?)".*?more-meta.*?author>(.*?)</span>.*?year>(.*?)</span>.*?</li>‘,re.S)        results=re.findall(pattern.content)        #print (results)        for result in results            url, name,author,date=result            author=re.sub(‘\s‘,‘‘,author)            date=re.sub(‘\s‘,‘‘,date)            print(url,name,author,date)

 

Python 爬蟲_Regex

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.