2.常用例項
import re
即可使用
一定要注意,正則的書寫,每個符號都要為之慎重
慢慢遇見,慢慢新增~
#1
. 匹配除換行符(\n、\r)之外的任何單個字元,相等於 [
^\n\r]
\d 所有數字
\d 所有非數字
\s 匹配所有空白符
\s 非空白符,不包括換行
\w 匹配字母、數字、下劃線。等價於 [a-za-z0-9_]
[a-z]
[a-z] 表示乙個區間,匹配所有大寫字母
[a-z]
[a-z] 表示所有小寫字母
[\u4e00-\u9fa5] 所有中文字元
[^\u4e00-\u9fa5] 所有非中文本元
^ 匹配輸入字串開始的位置。如果設定了 regexp 物件的 multiline 屬性,^ 還會與 \n 或 \r 之後的位置匹配。
$ 匹配輸入字串結尾的位置。如果設定了 regexp 物件的 multiline 屬性,$ 還會與 \n 或 \r 之前的位置匹配。
line = re.sub(
r'/[m|n]$',''
,line)
\b 匹配乙個單詞邊界,即字與空格間的位置。
\b 非單詞邊界匹配。
* 匹配前面的子表示式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於。
+ 匹配前面的子表示式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 。
? 匹配前面的子表示式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等價於 。
n 是乙個非負整數。匹配確定的 n 次。例如,'o' 不能匹配 "bob" 中的 'o',但是能匹配 "food" 中的兩個 o。
n 是乙個非負整數。至少匹配n 次。例如,'o' 不能匹配 "bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o' 等價於 'o+'。'o' 則等價於 'o*'。
m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o" 將匹配 "fooooood" 中的前三個 o。'o' 等價於 'o?'。請注意在逗號和兩個數之間不能有空格
這裡就是將re.sub(r』』,』』,string)的第二個引數由字串等形式更換為函式,替換的就更為靈活,只需要寫出自己想要使用的函式即可,在呼叫該函式時,如下圖示例呼叫即可
def
get_tail_1
(line)
:'''
啦啦,保留『拉』
'''return
str(line.group())
[-2:
-1]……
line=re.sub(
r'([\u4e00-\u9fa5]\)'
,get_tail_1,line)
>>
> t=
'aabbccdd123'
>>
> line1=re.findall(
'[abc]'
,t)>>
> line1
['a'
,'a'
,'b'
,'b'
,'c'
,'c'
]>>
> line1=re.findall(
'aa|bb|cc'
,t)>>
> line1
['aa'
,'bb'
,'cc'
]
目前來看,兩個符合不能共同使用,會衝突,如下面的例子:
>>
> line1=re.findall(
'[aabbcc]'
,t)>>
> line1
['a'
,'a'
,'b'
,'b'
,'c'
,'c'
]>>
> line1=re.findall(
'[aa|bb|cc]'
,t)>>
> line1
['a'
,'a'
,'b'
,'b'
,'c'
,'c'
]# 也就是說 內 | 失去了作用,一直都沒發現
>>
> line1=re.findall(
'aa|bb|cc'
,t)>>
> line1
['aa'
,'bb'
,'cc'
]
#2
ret=re.match(
"(\d+)([+-])(\d+)"
,t)#數字 + - 數字
\d+0-
9任意數字一次或任意次
#4words=re.findall(
"(\s+)\("
,line)
s不加空格的,+至少乙個,以(結束的最長字串
#5
words = re.findall(
r'(\s+)\/(\s+)'
,line)
尋找以非空字元開始,非空字元結束,中間是/符號的一組字元
如:當/p
#6pys=re.findall(
"\(([^\(\)]+)\)"
,line)
以(開始,以)結束,中間沒有()的
#8 pys=re.findall(
"\((.*?)\)"
,line
以(開始,以)結束,
?匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符。要匹配 ? 字元,請使用 \?。
sentences=re.sub(
r'[^\u4e00-\u9fa5]',''
,str
(sentences)
) 替換掉所有非中文本元
python正規表示式及其應用
正規表示式是一種用來匹配字串的強有力的 它的設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,我們就認為它 匹配 了,否則,該字串就是不合法的。1 直接給出字元,精確匹配 2 d可以 匹配乙個數字 3 w 可以匹配乙個字母或數字 4 可以匹配任意字元 5 用 表示任意個字元 包括...
Python 正規表示式學習(二)正規表示式語法
一,單一字元匹配 1 匹配任意字元 import re res re.match r a.abcd print res.group 列印結果 abc一點.表示匹配任意的字元。上面的 表示匹配a後面的任意兩個字元。必須從a開始。若寫成 b.則會發生錯誤。2 匹配指定字元 如 0 9a za z 表示 ...
python正規表示式學習
今天學習了python中有關正規表示式的知識。關於正規表示式的語法,不作過多解釋,網上有許多學習的資料。這裡主要介紹python中常用的正 則表示式處理函式。re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import re text jgood is a handso...