#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 為什麼要有正規表示式?
# 匹配字串
# 乙個人的**號碼
# 乙個人的身份證號
# 一台機器的ip位址
# 表單驗證
# 驗證使用者輸入的資訊是否準確
# 11位 全數字 1開頭 第二個數3-9之外的數
# 銀行卡號
# 爬蟲
# 從網頁原始碼中獲取一些鏈結、重要資料
# 正則規則(元字元,量詞)
# 第一條規則 : 本身是哪乙個字元,就匹配字串中的哪乙個字元
# 第二條規則 : 字元組[字元1字元2],乙個字元組就代表匹配乙個字元,只要這個字元出現在字元組裡,那麼就說明這個字元能匹配上
# 字元組中還可以使用範圍
# 所有的範圍都必須遵循ascii碼從下到大來指定
# [0-9] [a-z] [a-z]
# [0-9] \d 表示所有的數字
# d --> d
# \d --> \是轉義符 轉義符轉義了d,讓d能夠匹配所有0-9之間的數
# \w 表示 大小寫字母 數字 下劃線
# \s 表示空白 空格 換行符 製表符
# \t 匹配製表符
# \n 匹配換行符
# \d 表示所有的非數字
# \w 表示除 數字字母下劃線之外的所有字元
# \s 表示非空白
# . 表示除了換行符之外的任意內容
# 字元組 :只要在中括號內的所有字元都是符合規則的字元
# [^ ]非字元組 :只要在中括號內的所有字元都是不符合規則的字元
# [^]
# ^ 表示乙個字元的開始
# $ 表示乙個字元的結束
# | 表示或,注意,如果兩個規則有重疊部分,總是長的在前面,短的在後面
# () 表示分組,給一部分正則規定為一組,|這個符號的作用域就可以縮小了
# [\d] [0-9] \d 沒有區別 都是要匹配一位數字
# [\d\d] [\w\w] [\s\s] 匹配所有一切字元
# 元字元
# \d \w \s \t(table) \n(next)
# \d \w \s
# .# [^]
# ^ $
# | ()
# 量詞
# 表示只能出現n次
# 表示至少出現n次
# 表示至少出現n次,至多出現m次
# ? 表示匹配0次或1次 表示可有可無 但是有只能有乙個 比如小數點
# + 表示匹配1次或多次
# * 表示匹配0次或多次 表示可有可無 但是有可以有多個 比如小數點後n位
# 匹配0次
# 匹配任意的2位整數
# 匹配任意的保留兩位小數的數字
# 匹配乙個整數或者小數 \d+\.\d+|\d+ \d+\.?\d* \d+(\.\d+)?
# 預設貪婪匹配,總是會在符合量詞條件的範圍內盡量多匹配
# \d
# adljdkjsljdlj
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...