python正則表達

2021-10-03 01:55:11 字數 2246 閱讀 8025

這學期的課涉及到處理網頁資訊,但是具體操作方法老師不在課上教,所以打算自己學一下python爬蟲。先從正則表達開始吧。

findall(): 這個函式的用法就是字面意思:找到所有匹配的物件。其返回值是乙個列表,如果尋找的目標不存在,則返回乙個空列表。輸出返回值的方法是直接放在print裡,或者賦值給乙個變數。(我作為乙個小白,遇到大神給出乙個函式,但是沒有具體用法時候,我就抓耳撓腮不曉得啷個用。所以自己的部落格裡會記錄下具體用法)

import re

hand=

open

("jane.txt"

)#開啟乙個名為jane.txt的檔案

handnew=

""for line in hand:

line=line.rstrip(

)#去掉每一行結尾的換行符

handnew=handnew+line

n=re.findall(

"paru"

,handnew)

#賦值給變數

print

(n)print

(re.findall(

"paru"

,handnew)

)#直接print

findall()有乙個特殊的用法:對資料的搜尋與解析可同時進行。就是只留下()裡的表達:

比如有如下文件jane.txt。現在我想提取x-開頭的一列字串裡的浮點數,如果只用[0-9.+]來匹配,會找到文中4.90877。為了避免該情況,可以用

findall加括號

)#開啟乙個名為jane.txt的檔案

handnew=

""for line in hand:

line=line.rstrip(

)#去掉每一行結尾的換行符

handnew=handnew+line

n=re.findall(

"x-\s.+?: ([0-9.]+)"

,handnew)

#加括號,留所要

print

(n)compile(): 返回乙個匹配物件,需要和findall(), match(), search()配合使用。返回結果:

re.

compile

('p.+\x08'

)

finditer():返回乙個iterator,迭代值。可以用for迴圈顯示迭代值裡的每乙個物件。

接下來的match與search都是只匹配乙個物件,返回物件及其位置,如果物件不存在則返回none。

match():匹配字串的開頭。如果開頭不匹配,則返回none。例如對jane.txt文件,如果正則表達是「\sa\s.+?」,則返回none。因為開頭是on

search():在整個文件裡搜尋,返回第乙個匹配物件

import re

hand=

open

("jane.txt"

)#開啟乙個名為jane.txt的檔案

handnew=

""for line in hand:

line=line.rstrip(

)#去掉每一行結尾的換行符

handnew=handnew+line

n=re.search(

"\sa\s.+?"

,handnew)

#加括號,留所要

print

(n)》〉》〉》〉》〉》〉

= restart:

/users/cottoncandy/desktop/cours_content/爹爹不要鼓勵我玩物喪志啦/python爬蟲/test.py

; span=(3

,7), match=

'sait'

>

python裡面正則表達的字元和基本正則語言裡的字元差不多。我只記錄下我遇到的新的表達方式或者我不熟練的:

符號含義

\s匹配非空字元

\s匹配空字元

\b匹配非空字串,不能用於單詞首尾

\d匹配非數字字元

( )括號內的在匹配時被忽略,!但在findall()裡面相反!

python正則 python正則表達

正規表示式是一種用來匹配字串的強有力的 設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,就認為它 匹配 否則就不匹配。一 可以通過幾類符號設計限定規則,常用的思想如下 匹配除換行符以外的任意字元 w匹配字母 數字 下劃線或漢字 w匹配字母 數字 下劃線或漢字以外的字元 s匹配任...

python正則判斷 Python 正規表示式

一 基礎語法 1.1 語法速查 1.2 最簡單的正則匹配 學習正則一般是從 match 和 search 函式開始,推薦教程。match match pattern,string 函式會從字串的頭部開始搜尋,如果匹配到了 pattern 則將其結果存入 group 中,匹配到了幾次就存入幾次,如果沒...

python正則表達學習

python替換 主要是利用 python 的正則表達,python的正則表達功能比較強大。我就介紹下我經常用的幾個方法。可能說的詳細,如果要深入研究的話。還是 要去看下python的文件了.廢話不多說。馬上開始介紹 一般我會用re.compile來建立乙個正則物件。python 文件上介紹好象這個...