亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Python爬蟲(chóng)正則表達(dá)式常用符號(hào)和方法

    正則表達(dá)式并不是Python的一部分。正則表達(dá)式是用于處理字符串的強(qiáng)大工具,擁有自己獨(dú)特的語(yǔ)法以及一個(gè)獨(dú)立的處理引擎,效率上可能不如str自帶的方法,但功能十分強(qiáng)大。得益于這一點(diǎn),在提供了正則表達(dá)式的語(yǔ)言里,正則表達(dá)式的語(yǔ)法都是一樣的,區(qū)別只在于不同的編程語(yǔ)言實(shí)現(xiàn)支持的語(yǔ)法數(shù)量不同;但不用擔(dān)心,不被支持的語(yǔ)法通常是不常用的部分。

    1、常用符號(hào)

    . :匹配任意字符,換行符 n 除外

    :匹配前一個(gè)字符0次或無(wú)限次
    ? :匹配前一個(gè)字符0次或1次

    .* :貪心算法,盡可能的匹配多的字符

    .*? :非貪心算法

    () :括號(hào)內(nèi)的數(shù)據(jù)作為結(jié)果返回

    2、常用方法

    findall:匹配所有符合規(guī)律的內(nèi)容,返回包含結(jié)果的列表

    Search:匹配并提取第一個(gè)符合規(guī)律的內(nèi)容,返回一個(gè)正則表達(dá)式對(duì)象

    Sub:替換符合規(guī)律的內(nèi)容,返回替換后的值

    3、使用示例

    (1). 的使用舉例,匹配任意字符,換行符 n 除外

    import re #導(dǎo)入re庫(kù)文件

    a = ‘xy123’

    b = re.findall(‘x..’,a)

    print b

    打印的結(jié)果為:[‘xy1’] ,每個(gè) . 表示一個(gè)占位符

    (2) * 的使用舉例,匹配前一個(gè)字符0次或無(wú)限次

    a = ‘xyxy123’

    b = re.findall(‘x*’,a)

    print b

    打印的結(jié)果為:[‘x’, ”, ‘x’, ”, ”, ”, ”, ”]

    (3) ? 的使用舉例,匹配前一個(gè)字符0次或1次

    a = ‘xy123’

    b = re.findall(‘x?’,a)

    print b

    打印的結(jié)果為:[‘x’, ”, ”, ”, ”, ”]

    (4) .* 的使用舉例

    secret_code = ‘hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse’

    b = re.findall(‘xx.*xx’,secret_code)

    print b

    打印的結(jié)果為:[‘xxIxxfasdjifja134xxlovexx23345sdfxxyouxx’]

    (5).*?的使用舉例

    secret_code = ‘hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse’

    c = re.findall(‘xx.*?xx’,secret_code)

    print c

    打印的結(jié)果為:[‘xxIxx’, ‘xxlovexx’, ‘xxyouxx’]

    (6) ()的使用舉例

    secret_code = ‘hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse’

    d = re.findall(‘xx(.*?)xx’,secret_code)

    print d

    打印的結(jié)果為:[‘I’, ‘love’, ‘you’] ,括號(hào)內(nèi)的數(shù)據(jù)作為返回的結(jié)果

    (7) re.S的使用舉例

    s = ”’sdfxxhello

    xxfsdfxxworldxxasdf”’

    d = re.findall(‘xx(.*?)xx’,s,re.S)

    print d

    打印的結(jié)果為:[‘hellon’, ‘world’] ,re.S的作用是使 . 在匹配時(shí)包括 n

    (8) findall的使用舉例

    s2 = ‘asdfxxIxx123xxlovexxdfd’

    f2 = re.findall(‘xx(. ?)xx123xx(. ?)xx’,s2)

    print f20

    打印的結(jié)果為:love

    這時(shí)f2為含有一個(gè)元組的列表,該元組包含兩個(gè)元素,該元組中的兩個(gè)元素為兩個(gè)()匹配到的內(nèi)容,如果s2包含多個(gè)’xx(. ?)xx123xx(. ?)xx’這樣的子串,則f2包含多個(gè)元組;

    (9) search的使用舉例

    s2 = ‘asdfxxIxx123xxlovexxdfd’

    f = re.search(‘xx(. ?)xx123xx(. ?)xx’,s2).group(2)

    print f

    打印的結(jié)果為:love

    .group(2) 表示返回第二個(gè)括號(hào)匹配到的內(nèi)容,如果是 .group(1), 則打印的就是:I

    (10)sub的使用舉例

    s = ‘123rrrrr123’

    output = re.sub(‘123(.*?)123’,’123%d123’%789,s)

    print output

    打印的結(jié)果為:123789123

    其中的%d類(lèi)似于C語(yǔ)言中的%d,如果 output=re.sub(‘123(.*?)123′,’123789123’,s),輸出結(jié)果也為: 123789123

    (11) d 的使用舉例,用于匹配數(shù)字

    a = ‘asdfasf1234567fasd555fas’

    b = re.findall(‘(d+)’,a)

    print b

    打印的結(jié)果為:[‘1234567’, ‘555’] , d+ 可以匹配數(shù)字字符串;

    以上就是python爬蟲(chóng)正則表達(dá)式的一些常用符號(hào)和語(yǔ)法,希望對(duì)python初學(xué)者學(xué)習(xí)有所幫助。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)