正規表示式

2021-08-23 14:23:56 字數 1320 閱讀 9196

貪婪模式:<.*> 匹配 'b ' ,匹配盡可能多的字元。*,+,?

非貪婪模式:<.*?> 匹配 '',匹配盡可能少的字元。*?,+?,??

匹配m到n個重複字元

?只匹配m個重複字元

[amk]匹配'a'、'm'、or 'k'.

[a-z]匹配任何乙個小寫字母

[0-5][0-9]匹配00-59間的任意兩位數

[0-9a-fa-f]匹配任意十六進製制數

'-'在[a\-z]、[-a]、[a-]裡只匹配自身'-'

[(+*)]只匹配'('、'+'、'*' or ')'

import re

p = re.compile('a.*b') # 貪婪模式

p.findall('aabbbabab')

>>>['aabbbabab']

p = re.compile('a.*?b') # 非貪婪模式

p.findall('aabbbabab')

>>>['aab', 'ab', 'ab']

# ip位址匹配

import re

pattern = re.compile(r'((?:[0-9]\.|[1-9][0-9]\.|1[0-9]\.|2[0-4][0-9]\.|25[0-5]\.)(?:25[0-5]|2[0-4][0-9]|1[0-9]|[1-9][0-9]|[0-9]))')

content = '100.100.100.100 10.0.3.8 123.4.6.8'

m = pattern.findall(content)

print(m)

>>>['100.100.100.100', '10.0.3.8', '123.4.6.8']

phone = '13434-48945-232 # 一串有間隔的數字碼'

num = re.sub('#.*','',phone) # 刪除注釋

print('num is : ',num)

>>>num is : 13434-48945-232

num1 = re.sub('\d','',num) # 刪除減號

print('num1 is : ',num1)

>>>num1 is : 1343448945232

# 以字母下劃線開頭,以數字結尾的正規表示式

import re

p = re.compile('^[a-za-z_].*\d$')

p.findall('_ac12300')

>>>['_ac12300']

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

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

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