小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

只需十分鐘,淺識正則表達式

 L羅樂 2019-04-13

根據(jù)百度百科的解釋,正則表達式的概念是:對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯。

emmmm,看完這一大堆文字,表示好暈哦,還是不能理解?。?/span>

但是,正則表達式對數(shù)據(jù)處理來說非常重要!數(shù)據(jù)的清洗或網(wǎng)頁爬蟲中解析數(shù)據(jù)都用得上它。

因為它有以下優(yōu)點:

(1)可以簡化代碼,實現(xiàn)起來更加簡便;

(2)處理字符串的時候更容易理解;

(3)其速度比自己寫邏輯代碼要快。

(⊙o⊙)…有什么通俗易懂的解釋可以讓新手快速掌握這個名詞的精髓呢???

簡單來說,正則表達式就是設(shè)定一個字符串規(guī)則,然后幫助我們判斷某個字符串是不是符合這個模式,也可以根據(jù)該規(guī)則提取我們需要的數(shù)據(jù)。

這么解釋,是不是容易理解多了,但是沒有事例結(jié)合還是一知半解,下面讓我們利用正則表達式做一個簡單的演示:

正則表達式語法

^     匹配字符串開頭

$     匹配字符串末尾

例如,'^abc':匹配以'abc'開頭的字符串;'abc$':匹配以'abc'結(jié)尾的字符串;

re*    匹配0個或多個的字符

re   匹配1個或多個的字符

re?   匹配0個或1個由前面的正則表達式定義的片段,非貪婪方式

例如,'ab*':匹配字符串a(chǎn)和0個或多個b組成的字符串('a'、'ab'、'abb'......)

            'ab ':匹配字符串a(chǎn)和1個或多個b組成的字符串('ab'、'abb'......)

            'ab?':匹配字符串a(chǎn)和0個或1個b組成的字符串

匹配任意字符串,除了換行符

[abc]  匹配單個的字符a或b或c

[^abc]  匹配除了a,b,c之外的字符

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

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

\s  匹配任意空白字符,等價于[\t\n\r\f]

\S 匹配任意非空字符

\d  匹配任意數(shù)字

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

。。。

這么多語法,這也太暈了吧,不要著急,根據(jù)下面這個圖片,在使用時慢慢查閱,以后熟練了就好啦。

正則表達式實例

看了這么多的語法,頭暈?zāi)X脹,到底怎么才能構(gòu)建一個模式來匹配字符串呢?比如,現(xiàn)在要求我們從一大堆字符串中提取出需要的數(shù)據(jù):郵箱地址。這該怎么辦??

很顯然,郵箱地址一般是這樣的:

xiaobai@qq.com

根據(jù)前面提到的語法,我們可以定義這樣一個規(guī)則:

^\w @\w \.[com,cn,net]{1,3}$

其中\(zhòng)w表示單詞字符,等價于[A-Za-z0-9_],匹配字母數(shù)字及下劃線

表示匹配1個或多個的字符

\w 代表匹配字符[A-Za-z0-9_]一次或多次的組合字符串

\.的含義是將'.'轉(zhuǎn)義,因為'.'本身也是語法

{1,3}表示匹配前一個字符1-3次,至少1次,至多3次

[com,cn,net]字符集,表示匹配其中任意一個字符

下面用Python代碼簡單看一下演示,首先導(dǎo)入正則表達式的庫re模塊,再定義字符串規(guī)則pattern,如果匹配成功,則輸出YES,反之則沒有輸出。

具體的Python正則表達式大法,還聽下回分解!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多