Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解
flags參數(shù)
re.I
IGNORECASE
忽略字母大小寫(xiě)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 字符串中的空白符被忽略,除非該空白符在字符類中或在反斜杠之后。
它也可以允許你將注釋寫(xiě)入 RE,這些注釋會(huì)被引擎忽略;
注釋用 “#”號(hào) 來(lái)標(biāo)識(shí),不過(guò)該符號(hào)不能在字符串或反斜杠之后。
忽略大小寫(xiě)
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)文章希望大家以后多多支持腳本之家!
- 比較詳細(xì)Python正則表達(dá)式操作指南(re使用)
- Python中正則表達(dá)式的詳細(xì)教程
- python正則表達(dá)式re模塊詳細(xì)介紹
- python利用正則表達(dá)式提取字符串
- python正則表達(dá)式從字符串中提取數(shù)字的思路詳解
- Python 匹配任意字符(包括換行符)的正則表達(dá)式寫(xiě)法
- python的正則表達(dá)式re模塊的常用方法
- Python使用中文正則表達(dá)式匹配指定中文字符串的方法示例
- Python匹配中文的正則表達(dá)式
- python使用正則表達(dá)式(Regular Expression)方法超詳細(xì)
相關(guān)文章
python項(xiàng)目中requirements.txt的用法實(shí)例教程
Python項(xiàng)目中必須包含一個(gè)requirements.txt文件,用于記錄所有依賴包及其精確的版本號(hào),以便新環(huán)境部署,下面這篇文章主要給大家介紹了關(guān)于python項(xiàng)目中requirements.txt用法的相關(guān)資料,需要的朋友可以參考下2022-06-06
Python時(shí)間戳與日期格式之間相互轉(zhuǎn)化的詳細(xì)教程
java默認(rèn)精度是毫秒級(jí)別的,生成的時(shí)間戳是13位,而python默認(rèn)是10位的,精度是秒,下面這篇文章主要給大家介紹了關(guān)于Python時(shí)間戳與日期格式之間相互轉(zhuǎn)化的相關(guān)資料,需要的朋友可以參考下2022-08-08
Matplotlib自定義圖例(多張圖共享一個(gè)圖例)
最近再用Matplotlib繪圖,需要做兩個(gè)子圖都不需要設(shè)置圖例,圖例單獨(dú)用一個(gè)figure來(lái)顯示,本文就詳細(xì)的來(lái)介紹一下,感興趣的可以了解一下2023-08-08
Qt6中重大改變的QtMultimedia多媒體模塊實(shí)現(xiàn)
本文主要介紹了Qt6中重大改變的QtMultimedia多媒體模塊實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09

