国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python下正則表達(dá)式學(xué)習(xí)筆記

Ashin / 1290人閱讀

摘要:匹配并捕獲該匹配的子表達(dá)式。執(zhí)行正向預(yù)測先行搜索的子表達(dá)式,該表達(dá)式匹配處于匹配的字符串的起始點(diǎn)的字符串。續(xù)感謝好東西傳送門機(jī)器學(xué)習(xí)日報(bào)的推薦,我了解到了北京知識圖譜學(xué)習(xí)小組第一次線下活動(dòng)中關(guān)于正則學(xué)習(xí)閱讀資料,在這里收藏并分享。

用途

正則表達(dá)式可以

測試字符串內(nèi)的模式

替換文本

基于模式匹配從字符串中提取子字符串

RegEx語法

正則表達(dá)式(Regular Expression, RegEx)通過單個(gè)字符串來匹配一系列符合此語法規(guī)則的目標(biāo)字符串。

元字符以及其在RegEx中的行為說明列表:

元字符 行為
^ 匹配輸入字符串開始的位置。如果設(shè)置了 RegExp 對象的 Multiline 屬性,^ 還會(huì)與“n”或“r”之后的位置匹配。
$ 匹配輸入字符串結(jié)尾的位置。如果設(shè)置了 RegExp 對象的 Multiline 屬性,$ 還會(huì)與“n”或“r”之前的位置匹配。
* 零次或多次匹配前面的字符或子表達(dá)式。例如,zo 匹配“z”和“zoo”。 等效于 {0,}。
+ 一次或多次匹配前面的字符或子表達(dá)式。例如,“zo+”與“zo”和“zoo”匹配,但與“z”不匹配。+ 等效于 {1,}。
? 零次或一次匹配前面的字符或子表達(dá)式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。
{n} n 是非負(fù)整數(shù)。正好匹配 n 次。例如,“o{2}”與“Bob”中的“o”不匹配,但與“food”中的兩個(gè)“o”匹配。
{n,} n 是非負(fù)整數(shù)。至少匹配 n 次。例如,“o{2,}”不匹配“Bob”中的“o”,而匹配“foooood”中的所有 o。“o{1,}”等效于“o+”。“o{0,}”等效于“o*”。
{n,m} M 和 n 是非負(fù)整數(shù),其中 n <= m。匹配至少 n 次,至多 m 次。例如,“o{1,3}”匹配“fooooood”中的頭三個(gè) o。"o{0,1}" 等效于 "o?"。注意:您不能將空格插入逗號和數(shù)字之間。
? 當(dāng)此字符緊隨任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后時(shí),匹配模式是“非貪心的”。“非貪心的”模式匹配搜索到的、盡可能短的字符串,而默認(rèn)的“貪心的”模式匹配搜索到的、盡可能長的字符串。例如,在字符串“oooo”中,“o+?”只匹配單個(gè)“o”,而“o+”匹配所有“o”。
. 匹配除“n”之外的任何單個(gè)字符。若要匹配包括“n”在內(nèi)的任意字符,請使用諸如“[sS]”之類的模式。
(pattern) 匹配 pattern 并捕獲該匹配的子表達(dá)式。可以使用 $0…$9 屬性從結(jié)果“匹配”集合中檢索捕獲的匹配。若要匹配括號字符 ( ),請使用“(”或者“)”。
(?:pattern) 匹配 pattern 但不捕獲該匹配的子表達(dá)式,即它是一個(gè)非捕獲匹配,不存儲(chǔ)供以后使用的匹配。這對于用“or”字符組合模式部件的情況很有用。
(?=pattern) 執(zhí)行正向預(yù)測先行搜索的子表達(dá)式,該表達(dá)式匹配處于匹配 pattern 的字符串的起始點(diǎn)的字符串。它是一個(gè)非捕獲匹配,即不能捕獲供以后使用的匹配。
(?!pattern) 執(zhí)行反向預(yù)測先行搜索的子表達(dá)式,該表達(dá)式匹配不處于匹配 pattern 的字符串的起始點(diǎn)的搜索字符串。它是一個(gè)非捕獲匹配,即不能捕獲供以后使用的匹配。
[xyz] 字符集。匹配包含的任一字符。例如,“[abc]”匹配“plain”中的“a”。
[^] 反向字符集。匹配未包含的任何字符。
[a-z] 字符范圍。匹配指定范圍內(nèi)的任何字符。例如,“[a-z]”匹配“a”到“z”范圍內(nèi)的任何小寫字母。
b 匹配一個(gè)字邊界,即字與空格間的位置。例如,“erb”匹配“never”中的“er”,但不匹配“verb”中的“er”。
B 非字邊界匹配。“erB”匹配“verb”中的“er”,但不匹配“never”中的“er”。
cx 匹配 x 指示的控制字符。例如,cM 匹配 Control-M 或回車符。x 的值必須在 A-Z 或 a-z 之間。如果不是這樣,則假定 c 就是“c”字符本身。
d 數(shù)字字符匹配。等效于 [0-9]。
D 非數(shù)字字符匹配。
f 換頁符匹配。等效于 x0c 和 cL。
n 換行符匹配。等效于 x0a 和 cJ。
r 匹配一個(gè)回車符。等效于 x0d 和 cM。
s 匹配任何空白字符,包括空格、制表符、換頁符等。與 [ fnrtv] 等效。
S 匹配任何非空白字符。
t 制表符匹配。與 x09 和 cI 等效。
v 垂直制表符匹配。與 x0b 和 cK 等效。
w 匹配任何字類字符,包括下劃線。與“[A-Za-z0-9_]”等效。
W 與任何非單詞字符匹配。
num 匹配 num,此處的 num 是一個(gè)正整數(shù)。到捕獲匹配的反向引用。例如,“(.)1”匹配兩個(gè)連續(xù)的相同字符。

表格轉(zhuǎn)載自 Microsoft博客:正則表達(dá)式語法

RegEx用法實(shí)例
說明 正則表達(dá)式
電子郵件(Email) w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*
QQ號碼 [1-9]d{4,}
密碼(由數(shù)字/大寫字母/小寫字母/標(biāo)點(diǎn)符號組成,四種都必有,8位以上) (?=^.{8,}$)(?=.d)(?=.W+)(?=.[A-Z])(?=.[a-z])(?!.n).$
漢字(字符) [u4e00-u9fa5]
中文及全角標(biāo)點(diǎn)符號(字符) [u3000-u301eufe10-ufe19ufe30-ufe44ufe50-ufe6buff01-uffee]
中國大陸手機(jī)號碼 1d{10}
中國大陸郵政編碼 [1-9]d{5}
中國大陸身份證號(15位或18位) d{15}(dd[0-9xX])?
非負(fù)整數(shù)(正整數(shù)或零) d+
正整數(shù) 0-9]*[1-9*
負(fù)整數(shù) -0-9]*[1-9*
整數(shù) -?d+
小數(shù) (-?d+)(.d+)?
不包含abc的單詞 b((?!abc)w)+b

表格節(jié)選自 常用正則表達(dá)式

Memo:上面部分的模式,例如在Vim編輯器的find模式(/)下,無法進(jìn)行匹配。

Python中常見的RegEx用法

為了避免上述部分模式無法匹配的問題,實(shí)際操作的時(shí)候以參考文檔(RE python2)為準(zhǔn)。

如果要替換一個(gè)字符串中的某個(gè)模式,如下:

import re
txt = [the text for processing]
regex = [your regular expression]
string = [your string to replace the others]
data, number = re.subn(re.compile(regex), string, txt)
# or you could use
data, number = re.subn(regex, string, txt)

模塊中還有其他常用方法:

re.match

re.search

re.findall

當(dāng)然,官方文檔中還介紹了直接使用re的方法和使用re.compile()之后再進(jìn)行正則的區(qū)別。具體請參考這里。

Weiming Hu


2016/6/13 續(xù)

感謝好東西傳送門機(jī)器學(xué)習(xí)日報(bào)的推薦,我了解到了北京知識圖譜學(xué)習(xí)小組第一次線下活動(dòng)中關(guān)于正則學(xué)習(xí)閱讀資料,在這里收藏并分享。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37919.html

相關(guān)文章

  • 重磅 | 完備的 AI 學(xué)習(xí)路線,最詳細(xì)的資源整理!

    摘要:是你學(xué)習(xí)從入門到專家必備的學(xué)習(xí)路線和優(yōu)質(zhì)學(xué)習(xí)資源。的數(shù)學(xué)基礎(chǔ)最主要是高等數(shù)學(xué)線性代數(shù)概率論與數(shù)理統(tǒng)計(jì)三門課程,這三門課程是本科必修的。其作為機(jī)器學(xué)習(xí)的入門和進(jìn)階資料非常適合。書籍介紹深度學(xué)習(xí)通常又被稱為花書,深度學(xué)習(xí)領(lǐng)域最經(jīng)典的暢銷書。 showImg(https://segmentfault.com/img/remote/1460000019011569); 【導(dǎo)讀】本文由知名開源平...

    荊兆峰 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來做一些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個(gè)提問: pyth...

    lifesimple 評論0 收藏0
  • 正則達(dá)式

    摘要:最全正則表達(dá)式總結(jié)驗(yàn)證號手機(jī)號中文郵編身份證地址等是正則表達(dá)式的縮寫,作用是對字符串執(zhí)行模式匹配。學(xué)習(xí)目標(biāo)了解正則表達(dá)式語法在中使用正則表達(dá)式在中使 JS高級技巧 本篇是看的《JS高級程序設(shè)計(jì)》第23章《高級技巧》做的讀書分享。本篇按照書里的思路根據(jù)自己的理解和經(jīng)驗(yàn),進(jìn)行擴(kuò)展延伸,同時(shí)指出書里的一些問題。將會(huì)討論安全的類型檢測、惰性載入函數(shù)、凍結(jié)對象、定時(shí)器等話題。1. 安全的類型檢測...

    yibinnn 評論0 收藏0
  • Python 正則達(dá)式 re 模塊簡明筆記

    摘要:假設(shè)現(xiàn)在想把字符串你好,,世界中的中文提取出來,可以這么做你好,,世界注意到,我們在正則表達(dá)式前面加上了兩個(gè)前綴,其中表示使用原始字符串,表示是字符串。本文標(biāo)題為正則表達(dá)式模塊簡明筆記本文鏈接為參考資料正則表達(dá)式 簡介 正則表達(dá)式(regular expression)是可以匹配文本片段的模式。最簡單的正則表達(dá)式就是普通字符串,可以匹配其自身。比如,正則表達(dá)式 hello 可以匹配字符...

    lastSeries 評論0 收藏0

發(fā)表評論

0條評論

Ashin

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<