正規表示式

2021-10-03 10:18:23 字數 2302 閱讀 6348

正規表示式:字串的處理方式,是通用的字串方法。

字元組:同一位置上可能出現的各種字元,方括號之間列出所有可能出現的字元,例如:[0-9a-za-z]、[#.?],注意是一位和乙個數。其中字元出現順序和出現次數對字元組沒有影響。

字元組的範圍表示法:[ascii碼小的-碼大的]

元字元:具有特殊意義的字母,比如-表示範圍。若想表達其本身含義,需用轉義字元\轉義。

排除型字元組:,在字元組方括號開始後加上^,寫成[^0-8],表示當前位置上,匹配乙個括號內沒有列出的字元,即匹配不是0-8的數字(9)。此外^可以用於正規表示式的開始處,表示起始位置;$可以用於正規表示式的結束處,表示結束位置。^[^0-9][0-9]$表示匹配以非數字開頭,數字結尾的兩位字元。

常用

. :任意字元

字元組[0-9]表示數字,[a-z]表示小寫字母,[a-z]表示大寫字母

\d:表示數字 ⟺

\iff

⟺[0-9]

\w:表示單詞 ⟺

\iff

⟺[-0-9a-za-z],單詞字元包括數字、字母、下劃線;

\s:表示空白字元 ⟺

\iff

⟺ [ \t\n\v\r\f](第乙個字元為空格),空白字元是一些特殊轉義字元,如\t製表符,\n換行符,\r回車符等等。

\d:表示非數字字元,

\w:表示非單詞字元,

\s:表示非空白字元。是對普通字元組簡記的互補,利用其互補特性,可以實現全集效果,如[\d\d]、[\w\w]、[\s\s]均可表示匹配任意字元。

量詞

*:重複任意次(0次或多次)

+:重複1次或多次

?:重複0次或1次

:重複n次

:重複n次或更多次

:重複n到m次

貪婪匹配:在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配。.,*,+適用

後面加上?為將貪婪匹配模式轉為非貪婪匹配模式,會匹配盡量短的字串

1.regex = re.compile(pattern)

將pattern編譯成可復用的正規表示式物件,一次編譯多次使用,有利於節約cpu週期,將相同的pattern應用到多個字串上時。

2.regex.split(text)

將text按pattern分隔

text =

"foo bar\t baz \tqux"

regex = re.

compile

('\s+'

)# 該pattern匹配所有空白字元

regex.split(text)

# 將text按pattern分隔,['foo', 'bar', 'baz', 'qux']

3.newtext = regex.sub(『new』,text)將text中的所有匹配項替換為『new』

regex.sub(

':',text)

# 將text中的所有匹配項替換為『:』,foo:bar:baz:qux

regex.subn(): 替換第n個出現的匹配串

使用\1,\2,…來引用替換字串中的匹配組元素

4.regex.findall(text):檢視text中所有能夠匹配到的模式

regex.search(text):返回text中第乙個匹配項

regex.match(text):只在pattern出現在text起始位置時才匹配,沒有匹配到返回none

regex.findall(text)

# 檢視text中所有能夠匹配到的模式:[' ', '\t ', ' \t']

regex.search(text)

# 返回text中第乙個匹配項:match=' '

regex.match(text)

# 只在pattern出現在text起始位置時才匹配,沒有匹配到返回none

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

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

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