91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Python正則表達式的示例分析

發布時間:2021-02-02 09:35:55 來源:億速云 閱讀:167 作者:小新 欄目:編程語言

這篇文章主要介紹了Python正則表達式的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

文章目錄

  • 0、前言

  • 1、正則表達式模式

  • 2、正則表達式修飾符 - 可選標志


    • 2.1、`re.IGNORECASE`(`re.I`)

    • 2.2、`re.ASCII`(`re.A`)

    • 2.3、`re.DOTALL`(`re.S`)

    • 2.4、`re.MULTILINE`(`re.M`)

    • 2.5、`re.VERBOSE`(re.X)

    • 2.6、修飾符的疊加

  • 3、正則表達式函數


    • Example 3.3.1

    • Example 3.2.1

    • Example 3.1.1

    • Example 3.1.2

    • Example 3.1.3

    • 3.1、查找單個匹配項的函數


    • 3.2、查找多個匹配項的函數


    • 3.3、分割


import re

0、前言

本篇筆記基于菜鳥教程以及該知乎教程,融入了自己的一些學習心得。

1、正則表達式模式

Python正則表達式的示例分析

高亮處是我的補充,因為根據實際情況確實是能匹配到的
Python正則表達式的示例分析

這邊我就偷點懶了哈,直接截的是菜鳥教程的圖。

2、正則表達式修飾符 - 可選標志

2.1、re.IGNORECASE(re.I)

雖然第1節是常量,但我們必須先簡要提一下re.findall這個函數,因為它是貫穿這一節的函數。
re.findall(pattern, string, flag=0): 從字符串任意位置查找,返回一個列表。pattern是欲匹配的字符(串),string是查找源,flag是修飾符,默認是0

re.I的作用是忽略字符大小寫

text = "I'm Jasmine-Feng. My student number is No. 321432"pattern = r"Jasmine-FENG"print('Default: ', re.findall(pattern,text))print('Ignore upper/lower case: ', re.findall(pattern,text,flags=re.I))

N.B. pattern被賦了一個r字符串,這個r字符串的作用是避免轉義,r是raw的縮寫,也就是保持原樣的意思。可看這篇博文。一般來說,使用正則表達式都會用到這個r字符串。

Default:  []Ignore upper/lower case:  ['Jasmine-Feng']Process finished with exit code 0

在默認情況下,區分大小寫,找不到ENG;若不區分,則可以找到eng。

2.2、re.ASCII(re.A)

re.A的作用是只匹配ASCII碼支持的字符,那么具體指哪些字符呢?下圖來自百度百科。
Python正則表達式的示例分析
漢字是不在這個里面的,所以如果修飾符是re.A的話就匹配不了漢字了哈~

text = "我是Jasmine-Feng. 我的學號是No. 321432"pattern = r"\w+"print('Default: ', re.findall(pattern,text))print('ASCII: ', re.findall(pattern,text,flags=re.A))

\w+的作用是匹配一個或多個字母數字下劃線漢字

Default:  ['我是Jasmine', 'Feng', '我的學號是No', '321432']ASCII:  ['Jasmine', 'Feng', 'No', '321432']Process finished with exit code 0

2.3、re.DOTALLre.S

在正則表達式模式中,.是用來Python正則表達式的示例分析

text = "我\t是Jasmine-F\neng. 我%的?學號是No. 321432"pattern = r'.*'print('Default: ', re.findall(pattern,text))print('DOTALL: ', re.findall(pattern,text,re.S))

.*的作用是匹配長度至少為0的字符(串),emmm,好像是句廢話?事實上,只要整段話不被換行符截斷,就可以得到整個字符串(外加一個空字符串)。

Default:  ['我\t是Jasmine-F', '', 'eng. 我%的?學號是No. 321432', '']DOTALL:  ['我\t是Jasmine-F\neng. 我%的?學號是No. 321432', '']Process finished with exit code 0

2.4、re.MULTILINE(re.M)

$匹配定位到字符串末尾,^定位到字符串開頭,默認情況下,如果換行,是不能定位到新一行的行頭/尾的,而用re.M修飾則可以,也就是多行模式。

text = "我\t是Jasmine-F\neng. 我%的?\n學號是No. 321432"pattern = r'.$'pattern2 = r'^.'print('Default, end: ', re.findall(pattern, text))print('MULTILINE, end: ', re.findall(pattern, text, re.M))print('Default, start: ', re.findall(pattern2, text))print('MULTILINE, start: ', re.findall(pattern2, text, re.M))
Default, end:  ['2']MULTILINE, end:  ['F', '?', '2']Default, start:  ['我']MULTILINE, start:  ['我', 'e', '學']Process finished with exit code 0

2.5、re.VERBOSE(re.X)

verbose是“詳實的、冗長的”意思,通過該修飾符可以在正則表達式中加入注釋。注意,是往pattern里面加,不是往text加!我一開始以為是可以往text加注釋,然后調試半天都得不到結果。。。

text = '朋友們好啊!我是xxxxxx拳掌門人xxx~'pattern = r'''朋友們  # 主語
              好啊!  # 謂語
           '''print(re.findall(pattern, text,re.VERBOSE))
['朋友們好啊!']Process finished with exit code 0

2.6、修飾符的疊加

使用|可以疊加修飾。

text = 'Hello everybody!\n我是xxxxxx拳掌門人xxx~'pattern = r'BODY.*$'print(re.findall(pattern, text, re.I))print(re.findall(pattern, text, re.M))print(re.findall(pattern, text, re.M | re.I))
[][]['body!']Process finished with exit code 0

3、正則表達式函數

3.1、查找單個匹配項的函數

函數功能
search從任意位置開始搜索
match從開頭搜索,不用完全匹配
fullmatch從開頭搜索,必須完全匹配

其實我本來是寫了自己的例子的,但是瀏覽器給我誤關了,又沒保存(心態直接炸裂

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python正則表達式的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

于都县| 天津市| 九台市| 大理市| 龙泉市| 桂林市| 丰城市| 保山市| 仙游县| 武冈市| 黄浦区| 黄骅市| 南岸区| 岱山县| 织金县| 利津县| 山阳县| 四子王旗| 九寨沟县| 兴和县| 内黄县| 郯城县| 红河县| 刚察县| 金平| 梨树县| 扶余县| 招远市| 临高县| 谢通门县| 普定县| 洛宁县| 满洲里市| 卢龙县| 承德市| 泸西县| 扬州市| 张北县| 双峰县| 井陉县| 阿合奇县|