Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解
flags參數(shù)
re.I
IGNORECASE
忽略字母大小寫re.L
LOCALE
影響 “w, “W, “b, 和 “B,這取決于當(dāng)前的本地化設(shè)置。re.M
MULTILINE
使用本標(biāo)志后,‘^’和‘$’匹配行首和行尾時(shí),會(huì)增加換行符之前和之后的位置。re.S
DOTALL
使 “.” 特殊字符完全匹配任何字符,包括換行;沒(méi)有這個(gè)標(biāo)志, “.” 匹配除了換行符外的任何字符。re.X
VERBOSE
當(dāng)該標(biāo)志被指定時(shí),在 RE 字符串中的空白符被忽略,除非該空白符在字符類中或在反斜杠之后。
它也可以允許你將注釋寫入 RE,這些注釋會(huì)被引擎忽略;
注釋用 “#”號(hào) 來(lái)標(biāo)識(shí),不過(guò)該符號(hào)不能在字符串或反斜杠之后。
忽略大小寫
import re text = '我愛(ài)Python我愛(ài)python' pat1 = 'p' # search r1 = re.findall(pattern=pat1, string=text, flags=re.I) print(r1)
[‘P’, ‘p’]
多行模式
import re text = '我愛(ài)數(shù)學(xué)\n我愛(ài)Python\n我愛(ài)python' pat1 = '^我' # search r1 = re.findall(pattern=pat1, string=text) r2 = re.findall(pattern=pat1, string=text, flags=re.M) print(r1) print(r2)
[‘我’]
[‘我’, ‘我’, ‘我’]
匹配任何字符
import re text = ''' 我愛(ài)Python 我愛(ài)pandas ''' pat1 = '.我' # search r1 = re.findall(pattern=pat1, string=text, flags=re.S) print(r1) r2 = re.findall(pattern=pat1, string=text) print(r2)
[’\n我’, ‘\n我’]
[]
補(bǔ)充:正則表達(dá)式中的flags
MULTILINE,多行模式, 改變 ^ 和 $ 的行為
In [63]: s Out[63]: 'first line\nsecond line\nthird line' In [64]: pattern=re.compile(r'^\w+') In [65]: re.findall(pattern,s) Out[65]: ['first'] In [67]: pattern=re.compile(r'^\w+',re.M) In [68]: re.findall(pattern,s) Out[68]: ['first', 'second', 'third']
re.S DOTALL,此模式下 '.' 的匹配不受限制,可匹配任何字符,包括換行符,也就是默認(rèn)是不能匹配換行符
In [62]: s = '''first line ...: second line ...: third line''' In [71]: regex=re.compile('.+',re.S) In [73]: regex.findall(s) Out[73]: ['first line\nsecond line\nthird line'] In [74]: regex=re.compile('.+') In [75]: regex.findall(s) Out[75]: ['first line', 'second line', 'third line']
re.X VERBOSE,冗余模式, 此模式忽略正則表達(dá)式中的空白和#號(hào)的注釋
email_regex = re.compile("[\w+\.]+@[a-zA-Z\d]+\.(com|cn)") email_regex = re.compile("""[\w+\.]+ # 匹配@符前的部分 @ # @符 [a-zA-Z\d]+ # 郵箱類別 \.(com|cn) # 郵箱后綴 """, re.X)
總結(jié)
到此這篇關(guān)于Python正則表達(dá)式中flags參數(shù)的文章就介紹到這了,更多相關(guān)Python正則表達(dá)式flags參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Pandas高級(jí)教程之時(shí)間處理
我們發(fā)現(xiàn)關(guān)于時(shí)間日期的簡(jiǎn)單計(jì)算很多功能都是datetime庫(kù)提供的,那么pandas有沒(méi)有提供跟日期時(shí)間有關(guān)的函數(shù),通過(guò)下面文章來(lái)了解下,這篇文章主要給大家介紹了關(guān)于Python Pandas高級(jí)教程之時(shí)間處理的相關(guān)資料,需要的朋友可以參考下2021-10-10PyQt5每天必學(xué)之QSplitter實(shí)現(xiàn)窗口分隔
這篇文章主要介紹了PyQt5每天必學(xué)之窗口分隔,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04python實(shí)現(xiàn)將視頻按幀讀取到自定義目錄
今天小編就為大家分享一篇python實(shí)現(xiàn)將視頻按幀讀取到自定義目錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python利用pymysql和openpyxl實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫(kù)并插入數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了如何使用Python連接MySQL數(shù)據(jù)庫(kù),并從Excel文件中讀取數(shù)據(jù),將其插入到MySQL數(shù)據(jù)庫(kù)中,有需要的小伙伴可以參考一下2023-10-10windows下安裝Python的XlsxWriter模塊方法
今天小編就為大家分享一篇windows下安裝Python的XlsxWriter模塊方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05nlp自然語(yǔ)言處理學(xué)習(xí)CBOW模型類實(shí)現(xiàn)示例解析
這篇文章主要為大家介紹了nlp自然語(yǔ)言處理學(xué)習(xí)CBOW模型類實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04Python一行代碼實(shí)現(xiàn)ChatGPT接入微信機(jī)器人
這篇文章主要為大家介紹了Python一行代碼實(shí)現(xiàn)ChatGPT接入微信機(jī)器人示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03