Python爬蟲學習筆記(補充:正則表達式基礎:Re庫)

常用正則表達式

 

re.match():只能從字符串開頭匹配,返回第一和符合的re.match():只能從字符串開頭匹配,返回第一個符合的

import re
content = 'Hello 123 4567 World_This is a Regex Demo'
print(len(content))
#^:開頭爲Hello\s:匹配空白,\d:匹配數字,後面加{4}表示4d/w:匹配字母和下劃線
result = re.match('^Hello\s\d\d\d\s\d{4}\s\w{10}',content)
print(result) #輸出結果
print(result.group()) #輸出匹配到的內容
print(result.span())#輸出匹配的範圍

 

 

#匹配目標,部分匹配,利用()匹配1234567
import re
content = 'Hello 1234567 World_This is a Regex Demo'
print(len(content))
result = re.match('^Hello\s(\d+)\sWorld',content)
print(result) #輸出結果
print(result.group()) #''中的所有內容
print(result.group(1)) #輸出完整匹配到的內容
print(result.span())#輸出匹配的範圍

 

import re
content ='Hello 123 4567 World_This is a Regex Demo'
result = re.match('Hello.*Demo$',content) #.代表匹配除換行的字符,*代表匹配前面的字符無限次$表示結束
print(result)
print(result .group())
print(result.span())

 

 

#貪婪匹配,目的爲了選取1234567
import re
content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*(\d+).*Demo$',content)#.*匹配了最多字符,但是爲(\d+).*留一位7,所以結果只有7
print(result)
print(result.group(1))

 

 

#非貪婪匹配,目的爲了選取1234567
import re
content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^He.*?(\d+).*Demo$',content)#.*?遇到空格停止匹配字符,爲(\d+).*留下1234567,所以結果1234567但是.*?不宜放在結尾
print(result)
print(result.group(1))

 

#匹配換行符
import re
content = '''Hello 1234567 World_This'
is a Regex Demo'''
result = re.match('^He.*?(\d+).*Demo$',content,re.S)#re.S匹配包括換行符在內的所有字符
print(result)
print(result.group(1))

常用修飾符

 

 

遇到匹配的字符與特殊字符相同,在前面加/轉移即可,例如/.爲匹配.

 

re.search():從任意位置開始,返回第一個符合的

#r.search()
import re
content = 'Extra string Hello 1234567 World_This is a Regex Demo Extra string'
result = re.search('Hello.*?(\d+).*?Demo',content)
print(result)

 

re.findall():從任意位置開始,返回所有符合的爲列表類型,用循環逐個獲取

 

re.sub():用b替換所有a

#把所有數字刪掉

import re

contents ='54aKS4yrsoiRS4ixSL2g'

content = re.sub('\d+,'',contents)

print(content)

 

re.compile():將正則字符串編譯成正則表達式對象,方便之後使用

#刪掉所有日期中的時間

import re

contentl ='2016 12 15 12:00'

content2 = '2016-12-17 12:55 ’

content3 = '2016-12-22 13:21'

pattern = re.compile('\d{2}:\d{2}') 

resultl = re.sub(pattern, '', content1)

result2 = re.sub(pattern ,’’,content2)

result3 = re.sub(pattern,”,content3)

print(result1,result2,result3)

 

結果:2016-12-15 2016-12-17 2016-12-22 

發佈了51 篇原創文章 · 獲贊 19 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章