最近在學習爬蟲的時候,需要用到正規表示式對資料進行乙個提取。
個人的看法是,不懂的時候多動手,邊練邊看更容易懂
元字元講解的部落格:
菜鳥教程
練習的**:
該文章會持續更新
注意:結尾加上 /g 表示全域性查詢,如果不加,只匹配第一次出現的位置
加上小括號(),則表示分組,如果有多個組,則可用group(1),group(2)做乙個提取
注意 * + ? 的區別,不懂就自己看教程,再練習,有點繞口
## 總結
## ^ 表示匹配輸入字串的開始位置。但是,當它們在方括號表示式中使用時,表示不接受該方括號表示式中的字元集合,即補集或相反。如果要匹配^字元本身,必須要用\^。
## $ 表示在字串的結尾部分搜尋相應匹配。
## \b 匹配乙個單詞(也包括中文字元)的邊界,即單詞的分界。
## \b 與\b取反。
## \d 匹配任意數字。
## \d 匹配任意非數字字元。
## \s 匹配任何空白字元,包括空格、製表符、換行符等等。
## \s 匹配非空白字元
## \w 匹配全部由字母和數字組成的字串,即大寫、小寫字母以及0到9的數字,注意,也包括下劃線。
## \w 不包括字母、數字和下劃線。
## 字串的合集
## ()建立組
## . 除換行符外,匹配任何單個字元
## * 匹配0個或者更多
## + 匹配1個或者更多
## \ 將下乙個字元標記為特殊字元
## ? 當該字元緊跟在任何乙個其他限制符 (*, +, ?, , , ) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。例如,對於字串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配所有 'o'。
## x? 匹配乙個可選的 x 字元 (換言之,它匹配 1 次或者 0 次 x 字元)。
## x* 匹配0次或者多次 x 字元。
## x+ 匹配1次或者多次 x 字元。
## x 匹配 x 字元,至少 n 次,至多 m 次。
## (a|b|c) 要麼匹配 a,要麼匹配 b,要麼匹配 c。
## (x) 一般情況下表示乙個記憶組 (remembered group)。你可以利用 re.search 函式返回物件的 groups() 函式獲取它的值。
## 正規表示式中的點號通常意味著 「匹配任意單字元」
正規表示式學習
概念 正規表示式,就是用某種模式去匹配一類字串的乙個公式。基礎 下表列出了所有的元字元和對它們的乙個簡短的描述。簡單例子 vi 命令作用 s g 把乙個或者多個空格替換為乙個空格 s 去掉行尾的所有空格 s 在每一行頭上加入乙個空格 s 0 9 0 9 去掉行首的所有數字字元 s b aeio g ...
正規表示式學習
1.元字元 1 匹配任何單個字元 2 匹配括號中的任何乙個字元 可以再括號中使用連字元 來指定子都的區間來簡化表示,如a 0123456789 c等價於a 0 9 c 3 將 之間括起來的表示式定義為 組 4 將兩個匹配條件進行邏輯 或 運算 z f ood則匹配 zood 或 food 5 匹配0...
正規表示式學習
只是點皮毛,先湊合用著了,順便鄙視一下sqlserver,居然不支援正則。b 元字元,代表著單詞的開頭或結尾,也就是單詞的分界處。d 數字 s 任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w 字母或數字或下劃線或漢字等 匹配字串的開始 匹配字串的結束 轉義符 除換行符以外的任意字...