一、正規表示式概念
正規表示式(regular expression)描述了一種字串匹配的模式(pattern),可以用來檢查乙個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
二、常用的re方法
#匯入正則模組包
importre#
re.findall方法:在字串中找到正規表示式所匹配的所有字串,並返回乙個列表,如果沒有匹配的,則返回空列表
#從compile()函式的定義中,可以看出返回的是乙個匹配物件,它單獨使用就沒有任何意義,需要和findall(), search(), match()搭配使用。
a = '
123abc445bcdi8dh8j'#
一下兩行**也可以進行匹配,使用compile函式生成乙個匹配規則物件。
#yan = re.compile('[a-za-z]+')
#b = yan.findall(a)
b= re.findall(r'
[a-za-z]+
',a)
print(b)
['abc', 'bcdi', 'dh', 'j']
#re.serch方法:掃面整個字串,匹配成功就返回乙個物件,就不再往下找了。
import
rea = '
123abc445bcdi8dh8j
'b = re.search('bc'
,a)print
(b)#
通過group()檢視匹配的內容,span()檢視匹配的內容的下標
(b.group())
print(b.span())
none
#re.match方法:只從開始位置的字串進行匹配,匹配成功就返回乙個匹配物件;如果不是起始字串匹配成功,就返回為空
import
rea = '
123abc445bcdi8dh8j
'b = re.match('
123'
,a)print
(b)c = re.match('
8dh'
,a)print(c)
bc(4, 6)
#re.split分割:通過定義的分割規則進行字串分割
#\d+:匹配數字,0—9;\w+:匹配非單詞向量
import
restr1 = '
one1two2tree3four4fine
'str2 = '
one,two,tree,four,fine
'str3 = re.split('
\d+'
,str1)
str4 = re.split('
\w+'
,str2)
(str3)
print(str4)
['one', 'two', 'tree', 'four', 'fine']['one', 'two', 'tree', 'four', 'fine']
#re.sub()替換字串中每乙個匹配的自串後返回新的字串
str1 = '
one1two2tree3four4fine
'print(re.sub('
\d','
-',str1))
one-two-tree-four-fine
#re.finditer:引用分組
import
re str = '
hello 123,word 321
'pattern = re.compile('
\w+ \d+')
#print(pattern.finditer(str)) 返回乙個物件
for i in
pattern.finditer(str):
#group(0)返回乙個完整的字串內容
(i.group(0))
pattern1 = re.compile('
(\w+) (\d+)')
for i in
pattern1.finditer(str):
(i.group(0))
print(i.group(1))
print(i.group(2))
hello 123word 321
hello 123
hello
123word 321
word
321
#匹配中文字元
import
restr = '
帥哥 123,美女 321
'pattern = re.compile('
[\u4e00-\u9fa5]+')
print(pattern.findall(str))
['帥哥', '美女']
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...