正規表示式

2022-09-10 10:54:16 字數 1154 閱讀 7849

利用一些特殊符號的組合去字串中篩選出符合條件的資料

eg:校驗手機號

import

rephone = input('

phone number:')

if re.match('

^(13|14|15|18)[0-9]$

',phone_number):

print('

是合法的手機號碼')

else

:

print('

不是合法的手機號碼

')

特徵是使用中括號括起來,字串預設只能單個單個字元匹配

[0123456789]  匹配0到9之間任何乙個數字

可以簡寫為

[0-9]

[a-z]      匹配小寫字母a到字母z其中任意乙個字母

[a-z]       匹配大寫字母a到字母z其中任意乙個字母  

[a-za-z0-9]   匹配所有的數字、大寫、小寫字母

特殊符號預設也只能單個單個字元匹配

.     匹配除換行符以外的任意字元

\d       匹配數字

^     匹配字串的開始

$     匹配字串的結尾

"""^與$組合使用可以精準限制要查詢的資料"""

a|b    匹配字元a或字元b

()    匹配括號內的表示式也表示乙個組(不會影響正規表示式的匹配單純的分組而已)

[...]    匹配字元組中的字元

[^...]   匹配除了字元組中字元的所有字元

1.表示式在沒有量詞修飾的情況下 都是單個單個匹配

2.量詞必須結合(字串、特殊符號等)一起使用,不能單獨出現

3.量詞只能影響前面的乙個表示式(ab+ 只能影響b)

*    重複零次或更多次

+    重複一次或更多次

?     重複零次或一次

重複n次

重複n次或更多次

重複n到m次

待匹配的字串:

正規表示式

<.*>  預設貪婪匹配 盡可能多的匹配

匹配結果:

將貪婪變為非貪婪 只需要在量詞的後面加問號即可

<.*?>  非貪婪匹配 盡可能少的匹 結束條件有左右兩邊決定

匹配結果:

正規表示式 正規表示式 總結

非負整數 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正規表示式 編寫正規表示式

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