re模塊

re模塊

正則表達式

正則表達式是一門獨立的,任何語言均可以使用正則表達式,是由一堆特殊的字符組合而來python

  • 字符組正則表達式

    [0-9] :匹配0-9之間的任意字符spa

    [9-0] : 報錯, 必須從小到大code

    [a-z] : 小寫的a-z之間的字母對象

    [A-Z] : 大寫的A-Z之間的字母blog

    [z-A] : 錯誤, 只能從小到大ip

    [A-z] : 從大寫的A到小寫的z,根據ascii表來匹配對應的值。ci

    注意:順序必需要按照ASCII碼錶數值的順序編寫字符串

  • 元字符input

  • 組合使用

    \w\W : 匹配字母數字下劃線與非字母數字下劃線,匹配全部

    \d\D : 不管是數字或者非數字均可以匹配

    ^ : startswith '^'在外面使用: 表示開頭。 [^]: 表示取反的意思。

    [^ab]: 表明只去ab之外的字符。
    [^a-z]: 取a-z之外的字符。

    $ : endswith

    ^$ : 配合使用叫作精準匹配,如何限制一個字符串的長度或者內容

    | : 表示或。ab|abc若是第一個條件成立,則abc不會執行,怎麼解決,針對這種狀況把長的寫在前面就行了,必定要將長的放在前面。

    .* :貪婪匹配

    .*? :非貪婪匹配 ----> 能夠作過濾想要獲取的數據以前的數據

re模塊

在python中若想使用正則表達式,必須經過re模塊來實現

爲何要使用正則表達式

想獲取某一堆字符串中的某些字符,正則表達式能夠幫咱們過濾,並提取出咱們須要的字符數據

應用場景

爬蟲:re、Beautifulsoup四、Xpath、selector

數據分析:re、pandas、numpy...

用戶名與密碼、手機號輸入認證:檢測輸入的內容合法性

re模塊的使用(三種經常使用方法)

一、.findall('正則表達式', str) :匹配全部的字符串,拿到返回的結果,返回的結果是一個列表

import re
str3 = 'Mr shen 998'
t = re.findall('[A-Za-z0-9]{3}',str3)
print(t) # ['she', '998']

二、.search('正則表達式', str) :在匹配一個字符串成功後,拿到結果後結束,不日後匹配,返回的結果是一個對象

想要提取獲取對象中的值,對象.group()獲得

import re
str3 = 'Mr shen 998'
t2 = re.search('[A-Za-z0-9]{3}', str3)
print(t2) # <re.Match object; span=(3, 6), match='she'>
print(t2.group()) # she

三、.match('正則表達式', str) :從匹配的字符開頭匹配,若開頭不是想要的內容,則返回None,匹配成功後返回的結果是一個對象

想要提取獲取對象中的值,對象.group()獲得

import re
# 手機號認證
while True:
    str1 = input('請輸入手機號:').strip()
    # ^ 表示開頭
    # | 表示或
    # $ 表示結束
    # (13|14|18)表示獲取一個值13或14或18
    # [0-9] 表示限制取值範圍
    # {n} 表示獲取n個值
    if re.match('^(13|14|15|17|18|19)[0-9]{9}$', str1):
        print('手機號格式正確')
        break
    else:
        print('輸入格式不正確')
import re
str2 = 'shen988'
# [A-Za-z0-9] 表示限制取值範圍
# {6} 表示取6個值
obj = re.match('[A-Za-z0-9]{6}', str2)
print(obj) # 對象<re.Match object; span=(0, 6), match='shen98'>
print(obj.group()) # shen98
import re
str3 = 'Mr shen 998'
t3 = re.match('[A-Za-z0-9]{2}', str3) # 若是限制取3位則會報錯,從頭找不到三位
print(t3) # <re.Match object; span=(0, 2), match='Mr'>
print(t3.group()) # Mr

爬蟲四部原理

一、發送請求:requests

二、獲取響應數據:對方機器直接返回

三、解析並提取想要的數據:re

四、保存提取後的數據:with open()存到文件中

爬蟲三步曲:

一、發送請求:requests

二、解析數據

三、保存數據

相關文章
相關標籤/搜索