正規表示式:字串的處理方式,是通用的字串方法。
字元組:同一位置上可能出現的各種字元,方括號之間列出所有可能出現的字元,例如:[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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...