Python 學習筆記之:正則表示式
一、正則表示式的概念
1.使用單個字串來描述匹配一系列符合某個句法規則的字串;
2.是對字串操作的一種邏輯公式;
3.其應用場景為處理文字和資料;
4.正則表示式的執行過程:依次拿出表示式和文字中的字串比較,如果每個字元都能匹配成功,則匹配成功;否則匹配失敗。
二、re模組
1.編寫第一個正則表示式:
(1)import re #匯入正則表示式模組
(2)正則表示式執行 過程及關鍵函式(涉及兩個物件:規則物件、匹配物件)
使用compile函式建立正則表示式物件
使用match或search等簡單方法實現匹配和搜尋
檢查匹配結果
(3)示例:
import re
pattern = re.compile(r'^q') #是否以q開頭,r表示為原生字串
result = pattern.match('qazxs') #如果沒有匹配成功,則會返回空
result.group() #匹配結果放在元組中
print result.string
三、語法
1.匹配字元
字元 作用
(1)字元匹配
. 匹配任意字元
[……] 中括號中任選一個,可寫為[123456] 或[1-6]含義相同
\d / \D 匹配數字 / 非數字
\w / \W 匹配字母數字 / 匹配除過字母數字的內容
\s / \S 匹配空格 / 匹配除空格外的其他字元
(2)次數匹配
* 匹配前一個字元0次或多次
+ 匹配前一個字元1次或多次
? 匹配前一個字元0次或1次
{m} / {m,n} 匹配前一個字元m次,或[m,n] 次(少於匹配次數匹配失敗;多餘匹配字數,則只匹配限定個字元)
*? / +? / ?? 匹配模式變為非貪婪模式(儘可能少匹配字元)(只要前面匹配上,則後面能不匹配就不匹配)
(3)邊界匹配
^ 匹配字串開頭
$ 匹配字串結尾
\A / \Z 指定的字串必須出現在開頭/結尾
| 匹配左右任意一個表示式
(ab) 括號中表達式作為一個分組
\<number> 引用編號為number的分組匹配到的字串
(?\P<number>) 為分組起一個別名
(?P=name) 引用別名為name的分組匹配的字串
#(?p<name>)與(?p=name)示例 import re ma = re.match(r'<([\w]+>)[\w]+</\1',"<book>python</book>") ma.group() #輸出存入分組的結果 ma = re.match(r'<(?P<bookname>[\w]+>)[\w]+</(?P=bookname)',"<book>python</book>") ma.group()
四、re模組相關方法使用
1.search(pattern,str,flags) #用於查詢模式串在str中第一次出現的位置
#匹配字串中一部分資料 str1 = 'videonum = 1000' ma = re.search(r'\d+',str1) ma.group() # 輸出:1000
2.findall(pattern,str,flags) # 找到匹配返回所有匹配的列表
str1 = "c++=100,java=99,python=80" ma = re.findall(r'[\d]+',str1) ma #['100', '99', '80']
3. sub(pattern,repl,string,count=0,flags=0) #將字串中匹配正則表示式的部分替換為其他值
4.split(pattern,string,maxsplit=0,flags=0) #根據匹配分割字串,返回分割字串組成的列表
五、re模組相關練習(抓取網頁中的圖片到本地)
1.抓取網頁地址
import urllib2 req = urllib2.urlopen("http://www.imooc.com/course/list") buf = req.read()
2.獲取圖片地址
import re listurl = re.findall(r'http:.+\.jpg',buf)
3.抓取圖片內容儲存到本地
i = 0 for url in listurl: f = open(str(i)+'.jpg','w') req = urllib2.urlopen(url) buf = req.read() f.write(buf) i+=1
相關推薦
Python 學習筆記之:正則表示式
一、正則表示式的概念 1.使用單個字串來描述匹配一系列符合某個句法規則的字串; 2.是對字串操作的一種邏輯公式; 3.其應用場景為處理文字和資料; 4.正則表示式的執行過程:依次拿出表示式和文字中的字串比較,如果每個字元都能匹配成功,則匹配成功;否則匹配失敗。 二、re模
Python學習筆記26:正則表示式
使用 ? 和 * 萬用字元來查詢硬碟上的檔案。? 萬用字元匹配檔名中的 0 個或 1 個字元,而 * 萬用字元匹配零個或多個字元。像 data(\w)?\.dat 這樣的模式將查詢下列檔案: data.dat data
python爬蟲學習筆記6:正則表示式及re庫
正則表示式 語法 常用操作符 re庫 import re re庫的主要功能函式 re.search() re.search(pattern,string,f
python學習筆記9:正則表達式
使用 引入 常用 常用的正則表達式 需要 style pan 表達式 span 一、簡介 正則表達式就是用來查找字符串的;用來匹配一些比較復雜的字符串。 使用正確表達式需要引入re模塊 (regular定期的有規律的) 二、匹配字符串的方法
【python學習筆記】用正則表示式從含中文的網頁中提取資料(含編碼轉換)
目標:用正則表示式從含中文的網頁中提取資料 1、獲得網頁全部資料 1.1思考過程 確定我們要操作的網頁:url = 'http://q.stock.sohu.com/cn/603077/cwzb.shtml' 開啟要操作的網頁:req = urllib2.open(url)
Python爬蟲學習必備知識點:正則表示式模組詳解
一、基礎語法總結 1.1、匹配單個字元 a . d D w W s S [...] [^...] 匹配單個字元(.) 規則:匹配除換行之外的任意字元 In [24]: re.findall("f.o","foo is not fao") Out[24]: ['foo',
Python的學習筆記DAY10---關於正則表示式
正則表示式用來匹配查詢文字和資料,簡單的說,是一些由字元和特殊符號組成的字串,描述了模式的重複或者表述多個字元。其能按照某種模式匹配一系列有相似特徵的字串。 Python中的正則表
Python學習筆記__11章 正則表達式
編程語言 Python # 這是學習廖雪峰老師python教程的學習筆記1、正則表\d匹配一個數字\w匹配一個字母或數字\s可以匹配一個空格(也包括Tab等空白符).匹配任意一個字符*表示重復前面的一個字符0次或多次(包括0個)例如:ab* will match ‘a’, ‘ab’, ‘abbbbb.
Python 常用模組之re 正則表示式的使用
re模組用來使用正則表示式。正則表示式用來對字串進行搜尋的工作。我們最應該掌握正則表示式的查詢,更改,刪除的功能。特別是做爬蟲的時候,re模組就顯得格外重要。 1.查詢 1 import re 2 a = re.match("abc","aabccc") 3 b = re.search("abc",
Python爬蟲實戰之Requests+正則表示式爬取貓眼電影Top100
import requests from requests.exceptions import RequestException import re import json # from multiprocessing import Pool # 測試了下 這裡需要自己新增頭部 否則得不到網頁 hea
小白學習路之js正則表示式
在JavaScript裡面判斷一個字串是否是電子郵件的格式: 程式碼如下: if(formname.email.value!=formname.email.value.match(/^\w +[@]\w +[.][\w.] +$/)) { alert("您的
機器學習筆記4:正則化(Regularization)
機器學習筆記4:正則化(Regularization) Andrew Ng機器學習課程學習筆記4 過擬合與欠擬合 線性擬合時,有兩種擬合效果不好的情況,分別是過擬合與欠擬合。 過擬合(overfitting),也叫高方差(variance)。主要是擬合曲線過於彎曲,雖然
機器學習筆記05:正則化(Regularization)、過擬合(Overfitting)
說明:文章中的所有圖片均屬於Stanford機器學習課程 (一)過擬合問題(The Problem of Overfitting) 不管是在線性迴歸還是在邏輯迴歸中,我們都會遇到過擬合的問題。先從例子來看看什麼是過擬合。 i.線性迴歸中的過擬合
Python學習(四)正則表示式
正則表示式 正則表示式: 正則表示式, 又稱正規表示式、正規表示法、正規表示式、規則表示式、常規表示法(英語: Regular Expression, 在程式碼中常簡寫為regex、 regexp或RE) , 是電腦科學的一個概念。 正則表示式使用單個字串來
python學習筆記之網路爬蟲(五)正則表示式
IT Xiao Ang Zai 9月13號 版本:python3.64 程式設計軟體:pycharm 今天我們來學習正則表示式,那麼什麼是正則表示式呢?我們發現,下載一個網頁是容易的,但是要在網頁中找到我們需要的內容,是比較困難的。直接用find()方法是根本不
python核心程式設計第三版(一)學習筆記:正則表示式
注:下面有些內容不全都來源於原著,這些都是通過各方面的資料收集合並的結果。 目錄 1、元字元 3、邊界詞 4、分組詞 一、正則表示式介紹 正則表示式為高階的文字模式匹配、抽取、與/或文字形式的搜尋和替換功
python學習筆記之正則表示式1
正則表示式 正則表示式即RE,我們可以使用正則表示式來匹配字串集,其實正則表示式是一個小型的程式語言。它可以方便我們對於文字任務的操作。 對於python來說,re模組就是正則式操作模組。 元字元:元字元是特殊的字元,普通的字元在正則表示式中都可以用來匹配自己,如正則表示
Python學習筆記之正則表示式
1、import re # 匯入python正則表示式模組2、正則匹配兩種方式:p = re.compile(r'imooc') # 生成Pattern物件 res = p.match('imooc python') # 呼叫 patern 物件的 matc
Python學習筆記之函數與正則
地址 tee 大於等於 格式 匿名函數 驗證碼 分組 indent 引用 Python函數 Pycharm 常用快捷鍵,例如復制當前行、刪除當前行、批量註釋、縮進、查找和替換。 常用快捷鍵的查詢和配置:Keymap Ctrl + D:復制當前行 Ctrl + E:刪除當前
Python學習 :正則表示式
正則表示式 python 使用正則表示式(re)來進行匹配引擎搜尋 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串” 關於正則表示式,必須先學會它的元字元 元字元 : ^ $ * +&