1."."(點號)
①含義:乙個點號可以代替除了換行符以外的任意乙個字元,可以是英文本母,漢字,數字,英文標點,中文標點
②示例:
kingname
kin123me
kin'm'me
#都可以寫成:kin...me
2."*"(星號)
①含義:乙個點號可以表示它前面的一子表示式(英文本母,漢字,數字,英文標點,中文標點)0次到無限次。
②示例:
你好
你好好你好好好
#都可以寫成:你好*
3."?"(問號)
①含義:乙個問好可以表示它前面的一子表示式(英文本母,漢字,數字,英文標點,中文標點)0次或1次。
②示例:
你
你好#都可以寫成: 你?
4."\d"
①含義:表示乙個數字
②示例:
1
12123
#都可以寫成:\d*
5."()"
含義:小括號可以把括號裡的內容提取出來
. *(點星):表示匹配一串任意長度的字串任意次
. * ?(點星問好):匹配能滿足要求的最短字元
示例:
我愛哈.
* 表示:我愛哈,我愛哈哈,我愛哈哈哈...
我愛哈.
*? 表示:我愛哈
都要先加re庫
1.group()函式,只有用match和search時才使用,用findall時不用
語法:
.group(
)#返回匹配到的所有內容
.group(i)
#返回匹配到的所有內容中的第i個內容
.group(i,j)
#返回匹配到的所有內容中的第i,j個內容
2.match()
①含義:從頭開始匹配,前邊只要有一位不一致就匹配失敗
②語法:
re.match(引數1,引數2
,引數3
)
引數1:要匹配的目標字串
引數2:原字串
引數3:(共3種,其中第三種最常用)
re.i:使匹配對大小不明感
re.m:多行匹配,影響^和$
re.s:可以匹配包括換行符在內的所有字元
③示例:(標準格式)
import re
str1 =
'hello......'
pattern =
'hello'
result = re.match(pattern,str1,re.s)
print
(result.group())
#結果:hello
④注意:
因為match函式是從頭匹配,匹配的目標字串和原字串必須從頭開始就保持一致,否則匹配失敗.
一般match不用 .*?組合。
一般作用group(1)
import re
str1 =
'hello'
pattern =
'.hello'
result = re.match(pattern,str1,re.s)
print
(result.group())
#結果:報錯
3.search()
①含義:返回第乙個滿足要求的字串,之後立即停止查詢
②語法:
re.search(引數1,引數2
,引數3
)
引數1:要匹配的目標字串
引數2:原字串
引數3:(共3種,其中第三種最常用)
re.i:使匹配對大小不明感
re.m:多行匹配,影響^和$
re.s:可以匹配包括換行符在內的所有字元
③示例:(標準格式)
import re
str1 =
'....hello......'
pattern =
'h(.*?)o'
result = re.search(pattern,str1,re.s)
print
(result.group())
#結果:hello
④注意:
search函式常用.*?組合
那幾個group在search函式中都挺常用
4.findall()
①含義:它能以列表的形式返回所有滿足要求的字串
②語法:
re.findall(引數1,引數2
,引數3
)
引數1:要匹配的目標字串
引數2:原字串
引數3:(共3種,其中第三種最常用)
re.i:使匹配對大小不明感
re.m:多行匹配,影響^和$
re.s:可以匹配包括換行符在內的所有字元
③示例:(標準格式)
import re
content =
'dsahfdljs我的微博賬號是:asa,密碼是:12345,.....dsfa;dka;fdsa'
pattern =
'賬號是:(.*?),密碼是:(.*?),'
result = re.findall(pattern,content,re.s)
print
(result)
#結果:[('asa', '12345')]
④注意:
findall函式中不使用group函式,因為findall函式直接把匹配到的值放在列表裡返回
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...