#正規表示式用於匹配一類具有相同規則的字串,對於網頁結構多變的有奇效
#規則:
# 單字元:
# . :除換行以外所有字元
# :匹配集合中任意乙個字母
# \ :轉義
# \d :數字 [0-9]
# \d :非數字
# \w :數字、字母、下劃線、中文
# \w :非\w
# \s :所有的空白字元
# \s :非空白
# 數量修飾:
# * :任意多次,可以為0次
# + :至少一次
# ? :0次或1次
# :固定m次
# :至少m次
# :m-n次
# 邊界:
# \b \b
# $ :以某某結尾
# ^ :以某某開頭
# 分組:
# () :視為乙個整體;組模式 \1 \2
# 例:
import re
string =
'豬八戒
'pattern = re.
compile
(r'<(\w+)><(\w+)>\w+'
)ret = pattern.search(string)
#print(ret)
#以上是使與
相互匹配
# 貪婪模式:
# .*? .+?,加個問號,就會取消貪婪模式,使匹配的字數變少
# re.i :忽略大小寫
# re.m :多行匹配
# re.s :單行匹配,可以匹配換行符
#例:#string = '''hate is a beautiful feeling
#love you very much
#love she
#love her'''
#string2 = '''沁園春-雪
#北國風光
#千里冰封
#萬里雪飄
#望長城內外
#惟餘莽莽
#'''
#pattern = re.compile(r'^love',re.m)
#pattern = re.compile(r'<(\w+)>(.*?)',re.s)
#ret = pattern.findall(string2)
#print(ret)
#\w+無法匹配換行符
#有換行符時要re.s來設定單行模式,就可以匹配換行符
#match只從開始位置找,search從任意位置找,findall查詢所有字元
#re.sub(正規表示式,替換內容,字串),用於正則替換,例如:
#string = 'i love you, you love me, ye'
#pattern = re.compile(r'love')
#ret = re.sub(r'love','hate',string)
#ret = pattern.sub('hate',string)
#print(ret)
#我們也可以在替換內容那裡用函式來實現
deffn
(a):
ret =
int(a.group())
#group()表示的是正則匹配的結果
return
str(ret -5)
string =
'我喜歡身高為175的女孩'
pattern = re.
compile
(r'\d+'
)ret = pattern.sub(fn, string)
print
(ret)
(1)正規表示式乙個更行之有效的辦法是直接把那部分網頁給截出來,然後把自己要的部分變成(.*?)
,去掉其他的一些東東,變成.*?
,然後就可以提取了
(2)注意有換行符時要用單行模式:re.s
正規表示式基本用法
正規表示式是處理字串的強大工具,常用來實現字串的檢索,替換,匹配驗證等,正規表示式在各種程式語言中都能使用。search search 在匹配時會掃瞄整個字串,然後返回第乙個成功匹配的結果。不會想match那樣開頭不匹配就失敗。findall 搜尋整個字串,然後返回匹配的所有內容。sub 將匹配的字...
正規表示式的基本用法
使用單個字串來描述 匹配一系列符合某個語法規則的字串 正規表示式由兩種基本字元組成 原義字元 字元本身就是乙個正規表示式,例如 a,b,c t n r f等等 元字元 等等 有特殊含義的字元 正規表示式的分類 字元類 abc 將字元進行歸類,可以出現中的其中乙個對abc其中乙個進行匹配 abc 對不...
正規表示式基本用法B
string物件的方法 match rgexp 使用正規表示式模式對字串執行查詢,並將包含查詢的結果作為陣列返回。stringobj.match rgexp 引數 stringobj 必選項。對其進行查詢的 string 物件或字串文字。rgexp 必選項。為包含正規表示式模式和可用標誌的正規表示式...