最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

07. 數(shù)據(jù)提取-正則表達(dá)式

2020-06-29 10:45 作者:自學(xué)Python的小姐姐呀  | 我要投稿

1. 提取數(shù)據(jù)

在前面我們已經(jīng)搞定了怎樣獲取頁(yè)面的內(nèi)容,不過(guò)還差一步,這么多雜亂的代碼夾雜文字我們?cè)鯓影阉崛〕鰜?lái)整理呢?下面就開(kāi)始介紹一個(gè)十分強(qiáng)大的工具,正則表達(dá)式!

正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來(lái)表達(dá)對(duì)字符串的一種過(guò)濾邏輯。

正則表達(dá)式是用來(lái)匹配字符串非常強(qiáng)大的工具,在其他編程語(yǔ)言中同樣有正則表達(dá)式的概念,Python同樣不例外,利用了正則表達(dá)式,我們想要從返回的頁(yè)面內(nèi)容提取出我們想要的內(nèi)容就易如反掌了

規(guī)則

模式描述

^匹配字符串的開(kāi)頭

$匹配字符串的末尾

.?匹配任意字符,除了換行符,當(dāng)re.DOTALL標(biāo)記被指定時(shí),則可以匹配包括換行符的任意字符

[...]用來(lái)表示一組字符,單獨(dú)列出:[amk] 匹配 'a','m'或'k

[^...]不在[]中的字符:abc 匹配除了a,b,c之外的字符

re*匹配0個(gè)或多個(gè)的表達(dá)式re+匹配1個(gè)或多個(gè)的表達(dá)式re?匹配0個(gè)或1個(gè)由前面的正則表達(dá)式定義的片段,非貪婪方式

re{ n}

re{ n,}精確匹配n個(gè)前面表達(dá)式

re{ n, m}匹配 n 到 m 次由前面的正則表達(dá)式定義的片段,貪婪方式

a? ?b

(re)G匹配括號(hào)內(nèi)的表達(dá)式,也表示一個(gè)組

(?imx)正則表達(dá)式包含三種可選標(biāo)志:i, m, 或 x 。只影響括號(hào)中的區(qū)域

(?-imx)正則表達(dá)式關(guān)閉 i, m, 或 x 可選標(biāo)志。只影響括號(hào)中的區(qū)域

(?: re)類似 (...), 但是不表示一個(gè)組

(?imx: re)在括號(hào)中使用i, m, 或 x 可選標(biāo)志

(?-imx: re)在括號(hào)中不使用i, m, 或 x 可選標(biāo)志

(?#...)注釋

(?= re)前向肯定界定符。如果所含正則表達(dá)式,以 ... 表示,在當(dāng)前位置成功匹配時(shí)成功,否則失敗。但一旦所含表達(dá)式已經(jīng)嘗試,匹配引擎根本沒(méi)有提高;模式的剩余部分還要嘗試界定符的右邊。

(?! re)前向否定界定符。與肯定界定符相反;當(dāng)所含表達(dá)式不能在字符串當(dāng)前位置匹配時(shí)成功(?> re)匹配的獨(dú)立模式,省去回溯

\w匹配字母數(shù)字及下劃線

\W匹配非字母數(shù)字及下劃線\s匹配任意空白字符,等價(jià)于?

[\t\n\r\f].

\S匹配任意非空字符

\d匹配任意數(shù)字,等價(jià)于 [0-9]

\D匹配任意非數(shù)字

\A匹配字符串開(kāi)始

\Z匹配字符串結(jié)束,如果是存在換行,只匹配到換行前的結(jié)束字符串。c

\z匹配字符串結(jié)束

\G匹配最后匹配完成的位置

\b匹配一個(gè)單詞邊界,也就是指單詞和空格間的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'

\B匹配非單詞邊界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'

\n, \t, 等.匹配一個(gè)換行符。匹配一個(gè)制表符。等

\1...\9匹配第n個(gè)分組的內(nèi)容

\10匹配第n個(gè)分組的內(nèi)容,如果它經(jīng)匹配。否則指的是八進(jìn)制字符碼的表達(dá)式

[\u4e00-\u9fa5]中文

2. 正則表達(dá)式相關(guān)注解

2.1 數(shù)量詞的貪婪模式與非貪婪模式

正則表達(dá)式通常用于在文本中查找匹配的字符串Python里數(shù)量詞默認(rèn)是貪婪的(在少數(shù)語(yǔ)言里也可能是默認(rèn)非貪婪),總是嘗試匹配盡可能多的字符;非貪婪的則相反,總是嘗試匹配盡可能少的字符

例如:正則表達(dá)式”ab”如果用于查找”abbbc”,將找到”abbb”。而如果使用非貪婪的數(shù)量詞”ab?”,將找到”a”

2.2 常用方法

  • re.match

    • re.match 嘗試從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match()就返回none

    • 函數(shù)語(yǔ)法:re.match(pattern, string, flags=0)

  • re.search

    • re.search 掃描整個(gè)字符串并返回第一個(gè)成功的匹配。

    • 函數(shù)語(yǔ)法:re.search(pattern, string, flags=0)

  • re.sub

    • re.sub 替換字符串re.sub(pattern,replace,string)

  • re.findall

    • re.findall 查找全部re.findall(pattern,string,flags=0)

3. 正則表達(dá)式修飾符 - 可選標(biāo)志

正則表達(dá)式可以包含一些可選標(biāo)志修飾符來(lái)控制匹配的模式。修飾符被指定為一個(gè)可選的標(biāo)志。多個(gè)標(biāo)志可以通過(guò)按位 OR(|) 它們來(lái)指定。如 re.I | re.M 被設(shè)置成 I 和 M 標(biāo)志:

修飾符描述re.I使匹配對(duì)大小寫(xiě)不敏感re.L做本地化識(shí)別(locale-aware)匹配re.Mre.S使 . 匹配包括換行在內(nèi)的所有字符re.U根據(jù)Unicode字符集解析字符。這個(gè)標(biāo)志影響 \w, \W, \b, \Bre.X該標(biāo)志通過(guò)給予你更靈活的格式以便你將正則表達(dá)式寫(xiě)得更易于理解


07. 數(shù)據(jù)提取-正則表達(dá)式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
蓝田县| 天全县| 正定县| 崇礼县| 蕉岭县| 濮阳县| 渝中区| 威海市| 大方县| 阿瓦提县| 贵定县| 襄汾县| 成武县| 都江堰市| 都安| 沈阳市| 肥东县| 基隆市| 义乌市| 宝鸡市| 铜鼓县| 城步| 道真| 枝江市| 鲜城| 泽普县| 桑日县| 水城县| 五指山市| 高碑店市| 囊谦县| 龙川县| 钟祥市| 玉环县| 高青县| 鹿邑县| 天台县| 新晃| 黄大仙区| 江门市| 二手房|