"""tool.chinaz.com
"""# 什麼是正規表示式
# 一套規則 - 匹配字串的
# 能做什麼
# 1.檢測乙個輸入的字串是否合法 -- web開發專案 表單驗證
# 使用者輸入乙個內容的時候,我們要提前做檢測
# 能夠提高程式的效率並且減輕伺服器的壓力
# 2.從乙個大檔案中找到所有符合規則的內容 -- 日誌分析\爬蟲
# 能夠高效的從一大段文字中快速找到符合規則的內容
# 正則規則
# 所有的規則中的字元就可以剛好匹配到字串中的內容
# 字元組 描述的是乙個位置上能出現的所有可能性
# 接受範圍,可以描述多個範圍,連著寫就可以了
# [abc] 乙個中括號只表示乙個字元位置
# 匹配a或者b或者c
# [0-9] 根據ascii進行範圍的比對
# [a-z]
# [a-z]
# [a-za-z] 大小寫
# [0-9a-z]
# [0-9a-za-z_]
# 在正規表示式中能夠幫助我們表示匹配的內容的符號都是正則中的 元字元
# [0-9] --> \d 表示匹配一位任意數字 digit
# [0-9a-za-z_] --> \w 表示匹配數字字母下劃線 word
# 空格 -->
# tab --> \t
# enter回車 --> \n
# 空格,tab和回車 --> \s 表示所有空白 包括空格 tab和回車
# 元字元 -- 匹配內容的規則
# [^]
# \d
# \w
# \s
# \t
# \n
# \w 非數字字母下劃線
# \d 非數字
# \s 非空白
# [\d] \d
# [\d\d] [\w\w] [\s\s] 表示匹配所有
# . 匹配除了換行符之外的所有
# [^\d] 匹配所有的非數字
# [^1] 匹配所有的非數字
# ^ 匹配乙個字串的開始
# $ 匹配乙個字串的結尾
# a表示式|b表示式 匹配a或者b表示式中的內容,如果匹配a成功了,不會繼續和b匹配
# 所以,如果兩個規則有重疊部分,總是把長的放在前面
# () # 約束 | 描述的內容的範圍問題
# 記憶元字元 : 都是表示能匹配哪些內容,乙個元字元總是表示乙個字元位置上的內容
# \d \w \s \t \n \d \w \s
# [^] .
# ^ $
# | ()
# 量詞
# 表示匹配n次
# 表示匹配至少n次
# 表示至少匹配n次,至多m次
# ? 表示匹配0次或1次
# + 表示1次或多次
# * 表示0次或多次
# 匹配0次
# 整數 \d+
# 小數 \d+\.\d+
# 整數或小數 : \d+\.?\d*
# 分組的作用 : \d+(\.\d+)?
# 手機號碼
# 1 3-9 11位
# 1[3-9]\d
# 判斷使用者輸入的內容是否合法,如果使用者輸入的對就能查到結果,如果輸入的不對就不能查到結果
# ^1[3-9]\d$
# 從乙個大檔案中找到所有符合規則的內容
# 1[3-9]\d
# 貪婪匹配
# 在量詞範圍允許的情況下,盡量多的匹配內容
# .*x 表示匹配任意字元 任意多次數 遇到最後乙個x才停下來
# 非貪婪(惰性)匹配
# .*?x 表示匹配任意字元 任意多次數 但是一旦遇到x就停下來
# 轉義符
# 原本有特殊意義的字元,到了表達它本身的意義的時候,需要轉義
# 有一些有特殊意義的內容,放在字元組中,會取消它的特殊意義
# [().*+?] 所有的內容在字元組中會取消它的特殊意義
# [a\-c] -在字元組中表示範圍,如果不希望它表示範圍,需要轉義,或者放在字元組的最前面\最後面;
# 元字元# \d \s \w \t \n \d \s \w
# [^] .
# ^ $
# () |
# 量詞
# {} 表示任意的次數,任意的次數範圍,至少多少次
# ? + *
# 貪婪和非貪婪匹配
# 總是在量詞範圍內盡量多匹配 - 貪婪
# 總是在量詞範圍內盡量少匹配 - 惰性
# .*?x 匹配任意內容任意次數 遇到x就停止
# .+?x 匹配任意內容至少1次 遇到x就停止
# 轉義符問題
# . 有特殊的意義,取消特殊的意義\.
# 取消乙個元字元的特殊意義有兩種方法
# 在這個元字元前面加\
# 對一部分字元生效,把這個元字元放在字元組裡
# [.()+?*]
# 18/15位的身份證號
# 15
# 1-9 15
# [1-9]\d
# 18
# 1-9 16 0-9/x
# [1-9]\d[\dx]
# [1-9]\d[0-9x]
#[1-9]\d[0-9x]|[1-9]\d
# ^([1-9]\d[0-9x]|[1-9]\d)$
# [1-9]\d(\d[\dx])?
# ^[1-9]\d(\d[\dx])?$
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...