欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用

 更新時(shí)間:2022年08月19日 12:20:14   作者:悲戀花丶無(wú)心之人  
本文主要介紹了Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、re.findall函數(shù)介紹

它在re.py中有定義:

def findall(pattern, string, flags=0):
    """Return a list of all non-overlapping matches in the string.
    If one or more capturing groups are present in the pattern, return
    a list of groups; this will be a list of tuples if the pattern
    has more than one group.
    Empty matches are included in the result."""
    return _compile(pattern, flags).findall(string)

返回string中所有與pattern匹配的全部字符串,返回形式為數(shù)組。

二、代碼如下

后面會(huì)講解代碼里的各個(gè)部分,先列出來(lái)~

import re
 
str = 'aabbabaabbaa'
#一個(gè)"."就是匹配除 \n (換行符)以外的任意一個(gè)字符
print(re.findall(r'a.b',str))#['aab', 'aab']
#*前面的字符出現(xiàn)0次或以上
print(re.findall(r'a*b',str))#['aab', 'b', 'ab', 'aab', 'b']
#貪婪,匹配從.*前面為開(kāi)始到后面為結(jié)束的所有內(nèi)容
print(re.findall(r'a.*b',str))#['aabbabaabb']
#非貪婪,遇到開(kāi)始和結(jié)束就進(jìn)行截取,因此截取多次符合的結(jié)果,中間沒(méi)有字符也會(huì)被截取
print(re.findall(r'a.*?b',str))#['aab', 'ab', 'aab']
#非貪婪,與上面一樣,只是與上面的相比多了一個(gè)括號(hào),只保留括號(hào)的內(nèi)容
print(re.findall(r'a(.*?)b',str))#['a', '', 'a']
 
str = '''aabbab
         aabbaa
         bb'''#后面多加了2個(gè)b
#沒(méi)有把最后一個(gè)換行的aab算進(jìn)來(lái)
print(re.findall(r'a.*?b',str))#['aab', 'ab', 'aab']
#re.S不會(huì)對(duì)\n進(jìn)行中斷
print(re.findall(r'a.*?b',str,re.S))#['aab', 'ab', 'aab', 'aa\n         b']

三、re.findall中正則表達(dá)式(.*?)

字符串是

str = 'aabbabaabbaa'

1.一個(gè) . 就 是匹配除 \n (換行符)以外的任意一個(gè)字符

print(re.findall(r'a.b',str))
['aab', 'aab']

2.* 前面的字符出現(xiàn)0次或以上

print(re.findall(r'a*b',str))
['aab', 'b', 'ab', 'aab', 'b']

3..* 貪婪,匹配從.*前面為開(kāi)始到后面為結(jié)束的所有內(nèi)容

print(re.findall(r'a.*b',str))
['aabbabaabb']

4..*? 非貪婪,遇到開(kāi)始和結(jié)束就進(jìn)行截取,因此截取多次符合的結(jié)果,中間沒(méi)有字符也會(huì)被截取

print(re.findall(r'a.*?b',str))
['aab', 'ab', 'aab']

5.(.*?) 非貪婪,與上面一樣,只是與上面的相比多了一個(gè)括號(hào),只保留括號(hào)的內(nèi)容

print(re.findall(r'a(.*?)b',str))
['a', '', 'a']

四、re.findall中參數(shù)re.S的意義

1.字符串變?yōu)?后面多加了2個(gè)b)

str = '''aabbab
         aabbaa
         bb'''

2.參數(shù)無(wú)re.S,沒(méi)有把最后一個(gè)換行的aab算進(jìn)來(lái)

print(re.findall(r'a.*?b',str))
['aab', 'ab', 'aab']

3.參數(shù)有re.S,不會(huì)對(duì)\n進(jìn)行中斷

print(re.findall(r'a.*?b',str,re.S))
['aab', 'ab', 'aab', 'aa\n         b']

到此這篇關(guān)于Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用的文章就介紹到這了,更多相關(guān)Python re.findall內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 定時(shí)器,實(shí)現(xiàn)每天凌晨3點(diǎn)執(zhí)行的方法

    python 定時(shí)器,實(shí)現(xiàn)每天凌晨3點(diǎn)執(zhí)行的方法

    今天小編就為大家分享一篇python 定時(shí)器,實(shí)現(xiàn)每天凌晨3點(diǎn)執(zhí)行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Python定義函數(shù)實(shí)現(xiàn)累計(jì)求和操作

    Python定義函數(shù)實(shí)現(xiàn)累計(jì)求和操作

    這篇文章主要介紹了Python定義函數(shù)實(shí)現(xiàn)累計(jì)求和操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 最新評(píng)論