日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re)

發(fā)布時(shí)間:2023/12/2 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本篇主頁內(nèi)容:match的基本使用,search的基本使用,findall,finditer的基本使用,匹配中文,貪婪與非貪婪模式

Python爬蟲教程-19-數(shù)據(jù)提取-正則表達(dá)式(re)

正則表達(dá)式:一套規(guī)則,可以在字符串文本中進(jìn)行搜查替換等

正則使用步驟:

1.使用 compile 函數(shù)將正則表達(dá)式的字符串編譯成一個(gè) pattern 對象

2.通過 pattern 對象的一些方法對文本進(jìn)行匹配,匹配結(jié)果是一個(gè) match 對象

3.用 match 對象的方法,對結(jié)果進(jìn)行操作

正則的常用方法:

match:從開始位置開始查找,一次匹配,即1次匹配成功則退出

search:從任何位置開始查找,一次匹配

findall:全部匹配,返回列表

finditer:全部匹配,返回迭代器

split:分割字符串,返回列表

sub:替換

匹配中文

中文是Unicode編碼(utf-8也是Unicode編碼),范圍:主要在[u4e00-u9fa5]

中文全角逗號(hào)一類的不在[u4e00-u9fa5]范圍內(nèi)

貪婪與非貪婪模式

貪婪模式:在整個(gè)表達(dá)式匹配成功的前提下,盡可能多的匹配

非貪婪模式:在整個(gè)表達(dá)式匹配成功的前提下,盡可能少的匹配

python里面數(shù)量詞默認(rèn)是貪婪模式

例如:

查找文本abbbbbbbccc

re結(jié)果是: ab*

貪婪模式結(jié)果是:abbbbbbb

非貪婪模式結(jié)果是:a

案例v23 match的基本使用

# 正則結(jié)果match的使用案例

import re

# 以下正則分成2個(gè)組,以小括號(hào)為單位

# [a-z]表示出現(xiàn)小寫a-z任意字母都可以,+表示至少出現(xiàn)1次

# 兩組之間有一個(gè)空格,表示匹配的兩個(gè)英文字符之間有空格

s = r"([a-z]+) ([a-z]+)"

# 編譯

pattern = re.compile(s, re.I) # s, I表示忽略大小寫

m = pattern.match("Hello world wide web")

# group(0) 表示返回整個(gè)匹配成功的字符串,即所有小組

s = m.group(0)

print("所有小組的匹配結(jié)果:\n", s)

# 返回匹配成功的整個(gè)字符串的跨度,即所有小組

a = m.span(0)

print("所有小組的匹配結(jié)果跨度:\n", a)

# group(0) 表示返回的第一個(gè)分組匹配成功的字符串

s = m.group(1)

print("第1小組的匹配結(jié)果:\n", s)

# 返回匹配成功的整個(gè)字符串的跨度

a = m.span(1)

print("第1小組的匹配結(jié)果跨度:\n", s)

# groups() 打印出所有的小組,等價(jià)于m.group(1), m.group(2)...

s = m.groups()

print(s)

運(yùn)行結(jié)果

從結(jié)果可以看到:匹配到兩個(gè)小組,一個(gè)Hello,一個(gè)world,中間的空格是外面的,代碼中包含一些具體的輸出格式

案例v24 search的基本使用

# search的基本使用

import re

s = r'\d+'

pattern = re.compile(s)

# 無參數(shù)表示從頭開始查找,到最后結(jié)束

m = pattern.search("one12two34three56")

print(m.group(0))

# 參數(shù)表明搜查的范圍,例如:10-40

m = pattern.search("one12two34three56", 10, 40)

print(m.group(0))

運(yùn)行結(jié)果

因?yàn)槭菑牡?0個(gè)開始查找,所以查到的是56

案例v25 findall,finditer的基本使用

# findall,finditer的基本使用

import re

s = r'\d+'

pattern = re.compile(s)

m = pattern.findall("I am 18 years old, and 185 high")

print(m)

n = pattern.finditer("I am 18 years old, and 185 high")

print(type(n))

# 迭代器使用for循環(huán)輸出

for i in n:

# 只輸出i會(huì)包含無用數(shù)據(jù)

print(i.group())

運(yùn)行結(jié)果

查找所有匹配的字符串

匹配中文

# 中文unicode案例

import re

hello = u'你好,再見陌生人'

# 中文全角逗號(hào)一類的不在[u4e00-u9fa5]范圍內(nèi)

pattern = re.compile(r'[\u4e00-\u9fa5]+')

m = pattern.findall(hello)

print(m)

運(yùn)行結(jié)果

因?yàn)橹形娜嵌禾?hào)一類的不在[u4e00-u9fa5]范圍內(nèi),所在 findall 返回的是一個(gè)列表,包含兩個(gè)值

- 本筆記不允許任何個(gè)人和組織轉(zhuǎn)載

Python爬蟲教程-24-數(shù)據(jù)提取-BeautifulSoup4(二)

Python爬蟲教程-24-數(shù)據(jù)提取-BeautifulSoup4(二) 本篇介紹 bs 如何遍歷一個(gè)文檔對象 遍歷文檔對象 contents:tag 的子節(jié)點(diǎn)以列表的方式輸出 children:子節(jié) ...

Python爬蟲教程-23-數(shù)據(jù)提取-BeautifulSoup4(一)

Beautiful Soup是python的一個(gè)庫,最主要的功能是從網(wǎng)頁抓取數(shù)據(jù),查看文檔 https://www.crummy.com/software/BeautifulSoup/bs4/doc. ...

Python爬蟲教程-25-數(shù)據(jù)提取-BeautifulSoup4(三)

Python爬蟲教程-25-數(shù)據(jù)提取-BeautifulSoup4(三) 本篇介紹 BeautifulSoup 中的 css 選擇器 css 選擇器 使用 soup.select 返回一個(gè)列表 通過標(biāo) ...

Python爬蟲教程-01-爬蟲介紹

Spider-01-爬蟲介紹 Python 爬蟲的知識(shí)量不是特別大,但是需要不停和網(wǎng)頁打交道,每個(gè)網(wǎng)頁情況都有所差異,所以對應(yīng)變能力有些要求 爬蟲準(zhǔn)備工作 參考資料 精通Python爬蟲框架Scrap ...

Python爬蟲教程-00-寫在前面

鑒于好多人想學(xué)Python爬蟲,缺沒有簡單易學(xué)的教程,我將在CSDN和大家分享Python爬蟲的學(xué)習(xí)筆記,不定期更新 基礎(chǔ)要求 Python 基礎(chǔ)知識(shí) Python 的基礎(chǔ)知識(shí),大家可以去菜鳥教程進(jìn)行 ...

Python爬蟲教程-18-頁面解析和數(shù)據(jù)提取

本篇針對的數(shù)據(jù)是已經(jīng)存在在頁面上的數(shù)據(jù),不包括動(dòng)態(tài)生成的數(shù)據(jù),今天是對HTML中提取對我們有用的數(shù)據(jù),去除無用的數(shù)據(jù) Python爬蟲教程-18-頁面解析和數(shù)據(jù)提取 結(jié)構(gòu)化數(shù)據(jù):先有的結(jié)構(gòu),再談數(shù)據(jù) ...

python爬蟲的頁面數(shù)據(jù)解析和提取/xpath/bs4/jsonpath/正則(1)

一.數(shù)據(jù)類型及解析方式 一般來講對我們而言,需要抓取的是某個(gè)網(wǎng)站或者某個(gè)應(yīng)用的內(nèi)容,提取有用的價(jià)值.內(nèi)容一般分為兩部分,非結(jié)構(gòu)化的數(shù)據(jù) 和 結(jié)構(gòu)化的數(shù)據(jù). 非結(jié)構(gòu)化數(shù)據(jù):先有數(shù)據(jù),再有結(jié)構(gòu), 結(jié)構(gòu)化數(shù) ...

Python爬蟲教程-34-分布式爬蟲介紹

Python爬蟲教程-34-分布式爬蟲介紹 分布式爬蟲在實(shí)際應(yīng)用中還算是多的,本篇簡單介紹一下分布式爬蟲 什么是分布式爬蟲 分布式爬蟲就是多臺(tái)計(jì)算機(jī)上都安裝爬蟲程序,重點(diǎn)是聯(lián)合采集.單機(jī)爬蟲就是只在一 ...

Python爬蟲教程-33-scrapy shell 的使用

本篇詳細(xì)介紹 scrapy shell 的使用,也介紹了使用 xpath 進(jìn)行精確查找 Python爬蟲教程-33-scrapy shell 的使用 scrapy shell 的使用 條件:我們需要先 ...

隨機(jī)推薦

[Amazon] Amazon IAP for Unity

1> 下載amazon IAP3.0 for unity plugin 2> 根據(jù) https://developer.amazon.com/public/apis/earn/in-app ...

R語言XML包的數(shù)據(jù)抓取

htmlParse 函數(shù) htmlParse加抓HTML頁面的函數(shù). url1

HDU 5013 City Tour

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=5013 題意: 思路: 這里有錯(cuò),是Hi(x)=sigama(Hji)(j屬于x) const int ...

MyBatis實(shí)現(xiàn)SaveOrUpdate

這篇文章主要講如何通過xml方式實(shí)現(xiàn)SaveOrUpdate,但是仍然建議在Service中實(shí)現(xiàn). 例子 &lt ...

arm get_vector_swi_address

unsigned long* get_vector_swi_addr() { const void *swi_addr = 0xFFFF0008; unsigned ; unsigned ; unsi ...

記錄一下自己用到的python logging

最近想把自己零零散散寫的代碼嵌成一個(gè)應(yīng)用,要考慮到各方面的debug,把logging看了一下,把用到的記下來. 將日志打印到屏幕 import logging logging.debug(u'調(diào)試' ...

BLDC(無刷直流電機(jī))應(yīng)用相關(guān)

1.基于XC866的直流無刷電機(jī)簡易正弦波控制 http://blog.gkong.com/hushunlin_219521.ashx 2.無刷直流電機(jī)的PWM調(diào)制方式介紹 http://blog.g ...

Oracle11g靜默安裝

靜默安裝Oracle11G 前期準(zhǔn)備 1虛擬機(jī)準(zhǔn)備: Centos 6.5 64位 內(nèi)存2G 硬盤30G Cpu 4核 Hostname silent 將安裝包放到/tmp/oracle目錄下 2.軟 ...

Kilani and the Game-擴(kuò)散形式的搜索

Kilani and the Game 思路:這種擴(kuò)散走法的并且有速度.我們需要一層一層的入隊(duì), 而且 根據(jù)題目要求 按編號(hào)處理?例如q1隊(duì)列中有 1 1 1 2 2 2 2 3 3 3 3 3 3 ...

深入理解javascript構(gòu)造函數(shù)和原型對象

---恢復(fù)內(nèi)容開始--- 對象,是javascript中非常重要的一個(gè)梗,是否能透徹的理解它直接關(guān)系到你對整個(gè)javascript體系的基礎(chǔ)理解,說白了,javascript就是一群對象在攪..(嗶! ...

總結(jié)

以上是生活随笔為你收集整理的python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。