大家請看下面的**,是我在pycharm上執行的**,注釋部分就是正規表示式的簡單介紹,把**部分的注釋放開就可以進行測試了
1. findall的使用
# -*- coding: utf-8 -*-
import re #匯入正規表示式的乙個方法re
secrect_code = 'lahsglhxxixxdhfkj45xxlovexxdfgu45xxyouxx'#定義了乙個列表,放置的是密碼
#.的使用方法
# a = 'xz123'
# b = re.findall('x.',a)#呼叫re庫裡面的findall方法,其中"."的作用是正規表示式裡面的內容.:匹配任意字元,換行符\n除外
# print b
#結果為xz,.可以理解為乙個佔位符
#*的使用
# a = 'xyxy123'
# b = re.findall('x*',a)
# print b
#結果為['x', '', 'x', '', '', '', '', '']
#*的作用是匹配他的前乙個字元0次或者無數次
#所以x被匹配了,其他的字元沒有被讀取,置為空
#?的使用方法
# a = 'xy123'
# b = re.findall('x?',a)
# print b
#結果為['x', '', '', '', '', '']
#?的作用是匹配他前面的字元0次或者一次
#重點是這個和下面乙個的使用
#.*的使用貪心演算法
# b = re.findall('xx.*xx',secrect_code)
# print b
#結果為['xxixxdhfkj45xxlovexxdfgu45xxyouxx']
#.*的作用是極可能多的匹配符合的內容
#.*?的使用,非貪心演算法
# c = re.findall('xx.*?xx',secrect_code)
# print c
#結果為['xxixx', 'xxlovexx', 'xxyouxx']
#滿足條件,盡可能做的輸出符合條件的組合
#最重點的部分重點重點重點重點重點重點重點
#(.*?)的使用
# d = re.findall('xx(.*?)xx',secrect_code)
# print d
#結果為['i', 'love', 'you']
#只返回括號裡面的內容
s = '''ahlgxxhello
xxhaglxxworldxxhal'''
d = re.findall('xx(.*?)xx',s)
print d
#這個的結果是['hagl']
#原因是上面的正規表示式的方法不匹配換行
#將上面的**加以改進
e = re.findall('xx(.*?)xx',s,re.s)
print e
#結果是['hello\n', 'world']
#re.s引數的作用是包括換行符
2. findall和search的比較
#search和findall的比較
# s2 = 'hkafjxxixx123xxlovexxfah'
# f = re.search('xx(.*?)xx123xx(.*?)xx',s2).group(1)
# print f
#結果是i,那麼如果我現在把group(1)換成是group(2)的話結果就是love
# s2 = 'hkafjxxixx123xxlovexxfah'
# f = re.search('xx(.*?)xx123xx(.*?)xx',s2).group(2)
# print f
#在看findall也可以實現該作用
# s2 = 'hkafjxxixx123xxlovexxfah'
# f = re.findall('xx(.*?)xx123xx(.*?)xx',s2)
# print f[0][1]
# #結果是love
3. s
ub的使用
#接下來看sub的使用
# s = '123alhgjdis123'
# output = re.sub('123(.*?)123','456',s)
# print output
#結果是456
#我們可以改變一下,輸出另乙個的結果
s = '123alhgjdis123'
output = re.sub('123(.*?)123','456%d'%123,s)
print output
#結果為456123,是不是想起和c語言有類似的地方
4. 匹配純數字
#匹配純數字
a = 'asdf123456sdakf'
b = re.findall('(\d+)',a)
print b
#結果是['123456']
5. 匯入的方式
建議是import re,盡量不要使用其他的匯入方式和使用方法
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...