正規表示式

2021-10-24 17:19:32 字數 2899 閱讀 9353

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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...