Python正規表示式

2021-07-25 21:29:05 字數 2630 閱讀 6907

大家請看下面的**,是我在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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...