溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么進(jìn)行Python正則表達(dá)式分析

發(fā)布時間:2021-12-04 15:02:23 來源:億速云 閱讀:150 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關(guān)怎么進(jìn)行Python正則表達(dá)式分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

今天寫爬蟲偶然想到了初學(xué)正則表達(dá)式時候,看過一篇文章非常不錯。檢索一下還真的找到了。

re模塊

怎么進(jìn)行Python正則表達(dá)式分析

re.search

經(jīng)常用match = re.search(pat, str)的形式。因為有可能匹配不到,所以re.search()后面一般用if  statement。

怎么進(jìn)行Python正則表達(dá)式分析

re.match

re.match和re.search很相似,只是re.match是從字符串的開頭開始匹配。

怎么進(jìn)行Python正則表達(dá)式分析

常用正則字符意義

  • a, X, 9,等字符匹配自己, 元字符不匹配自己,因為有特殊意義,比如 . ^ $ * + ? { }[ ] \ | ( )

  • . 英文句號,匹配任意字符,不包含'\n'

  • \w 匹配'word'字符,[a-zA-Z0-9]

  • \W 匹配非'word'字符

  • \b 匹配'word'和'non-word'之間邊界

  • \s 匹配單個whitespace字符,space, newline, return, tab, form [\n\r\t\f]

  • \S 匹配non-whitespace字符

  • \t, \n, \r 匹配tab, newline, return

  • \d 匹配數(shù)字[0-9]

  • ^ 匹配字符串開頭

  • $ 匹配字符串結(jié)尾

重復(fù)

‘+’ 一或多次, ‘*’ 零或多次, ‘?’ 零或一次

方括號[]

怎么進(jìn)行Python正則表達(dá)式分析

[]類似于or

Square brackets can be used to indicate a set of chars, so [abc] matches 'a'  or 'b' or 'c'.

怎么進(jìn)行Python正則表達(dá)式分析

Group Extraction圓括號()

有時候需要提取匹配字符的一部分,比如剛才的郵箱,我們可能需要其中的username和hostname,這時候可以用()分別把username和hostname包起來,就像r'([\w.-]+)@([\w.-]+)',如果匹配成功,那么pattern不改變,只是可以用match.group(1)和match.group(2)來username和hostname,match.group()結(jié)果不變。

怎么進(jìn)行Python正則表達(dá)式分析

findall and groups

()和findall()結(jié)合,如果包括一或多個group,就返回a list of tuples。

怎么進(jìn)行Python正則表達(dá)式分析

給re.search加^之后是一樣的。

re.sub

re.sub(pat, replacement,  str)在str里尋找和pattern匹配的字符串,然后用replacement替換。replacement可以包含\1或者\2來代替相應(yīng)的group,然后實現(xiàn)局部替換。怎么進(jìn)行Python正則表達(dá)式分析

看完上述內(nèi)容,你們對怎么進(jìn)行Python正則表達(dá)式分析有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI