日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

python正则表达式相关知识有哪些

發布時間:2023/12/15 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 python正则表达式相关知识有哪些 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章主要為大家展示了“python正則表達式相關知識有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python正則表達式相關知識有哪些”這篇文章吧。

正則表達式模塊

Python 有一個名為 的內置包re,可用于處理正則表達式。導入re模塊:

importre

Python中的正則表達式

導入re模塊后,您可以開始使用正則表達式。
例如:搜索字符串以查看它是否以“The”開頭并以“Spain”結尾:

importre

txt="TheraininSpain"x=re.search("^The.*Spain$",txt)ifx:
print("匹配成功!")else:
print("匹配失敗")

運行:
當然,你現在看不懂這個例子,既然手把手教學,并不會教大家一步登天。

正則表達式函數

findall() 函數

該findall()函數返回一個包含所有匹配項的列表。
例如:打印所有匹配項的列表

importre

txt="川川菜鳥啊菜鳥啊"x=re.findall("菜鳥",txt)print(x)

運行返回:

該列表按找到的順序包含匹配項。如果未找到匹配項,則返回一個空列表:

importre

txt="菜鳥并不菜"x=re.findall("川川",txt)print(x)if(x):
print("匹配成功了喲")else:
print("找不到這個呀!")

運行返回:

search() 函數

該search()函數在字符串中搜索匹配項,如果有匹配項,則返回一個Match 對象。如果有多個匹配項,則只返回匹配項的第一次出現。
例如:搜索字符串中的第一個空白字符:

importre

txt="菜鳥呢"x=re.search("\s",txt)print("第一個空格字符位于位置:",x.start())

運行結果:

如果未找到匹配項,None則返回該值:

importre

txt="天上飛的是菜鳥"x=re.search("川川",txt)print(x)

返回:

split() 函數

該split()函數返回一個列表,其中的字符串在每次匹配時被拆分。
例如:在每個空白字符處拆分

importre

txt="菜鳥學python"x=re.split("\s",txt)print(x)

運行返回:
您可以通過指定maxsplit 參數來控制出現次數
例如:僅在第一次出現時拆分字符串:

importre#Splitthestringatthefirstwhite-spacecharacter:txt="飛起來菜鳥們"x=re.split("\s",txt,1)print(x)

返回:

sub() 函數

該sub()函數用您選擇的文本替換匹配項。
例如:用只替換就

importre

txt="學python就找川川菜鳥"x=re.sub("就","只",txt)print(x)

運行:
您可以通過指定count 參數來控制替換次數 :
例如替換前 2 次出現:

importre

txt="學python就就就川川菜鳥"x=re.sub("就","只",txt,2)print(x)

返回:

元字符

列表符號

[] 用于一組字符
例如:#按字母順序查找“a”和“m”之間的所有小寫字符

importre

txt="applechuanchuan"#按字母順序查找“a”和“m”之間的所有小寫字符x=re.findall("[a-m]",txt)print(x)

運行:

轉義符

** 表示特殊序列(也可用于轉義特殊字符)
例如匹配所有數字:

importre

txt="我今年20歲了"#查找所有數字字符x=re.findall("\d",txt)print(x)

運行返回:

任意符號

. 可以任何字符(換行符除外)。
例如:搜索以“he”開頭、后跟兩個(任意)字符和一個“o”的序列

importre

txt="helloworld"#搜索以“he”開頭、后跟兩個(任意)字符和一個“o”的序列x=re.findall("he..o",txt)print(x)

運行返回:

開始符

^符號用于匹配開始。

importre

txt="川川菜鳥飛起來了"x=re.findall("^川",txt)ifx:
print("哇,我匹配到了")else:
print("哎呀,匹配不了啊")

運行:

結束符

$ 符號用于匹配結尾,例如:匹配字符串是否以“world”結尾

importre

txt="helloworld"#匹配字符串是否以“world”結尾x=re.findall("world$",txt)ifx:
print("匹配成功了耶")else:
print("匹配不到哦")

運行:

星號符

  • 星號符用于匹配零次或者多次出現。

importre

txt="天上飛的是菜鳥,學python找川川菜鳥!"#檢查字符串是否包含“ai”后跟0個或多個“x”字符:x=re.findall("菜鳥*",txt)print(x)ifx:
print("匹配到了!")else:
print("氣死了,匹配不到啊")

運行:

加號符

+ 用于匹配一次或者多次出現
例如:檢查字符串是否包含“菜鳥”后跟 1 個或多個“菜鳥”字符:

importre

txt="飛起來了,菜鳥們!"#檢查字符串是否包含“菜鳥”后跟1個或多個“菜鳥”字符:x=re.findall("菜鳥+",txt)print(x)ifx:
print("匹配到了!")else:
print("煩死了,匹配不到")

運行:

集合符號

{} 恰好指定的出現次數
例如:檢查字符串是否包含“川”兩個

importre

txt="川川菜鳥并不菜!"#檢查字符串是否包含“川”兩個x=re.findall("川{2}",txt)print(x)ifx:
print("匹配到了兩次的川")else:
print("匹配不到啊,帥哥")

返回:

或符

| 匹配兩者任一
例如:匹配字符串菜鳥或者是我了

importre

txt="菜鳥們學會python了嗎?串串也是菜鳥啊!"x=re.findall("菜鳥|是我了",txt)print(x)ifx:
print("匹配到了哦!")else:
print("匹配失敗")

運行:

特殊序列

指定字符

\A : 如果指定的字符位于字符串的開頭,則返回匹配項。
例如:匹配以菜字符開頭的字符

importre

txt="菜鳥在這里"x=re.findall("\A菜",txt)print(x)ifx:
print("是的匹配到了")else:
print("匹配不到")

運行:

指定開頭結尾

\b 返回指定字符位于單詞開頭或結尾的匹配項 (開頭的“r”確保字符串被視為原始字符串)。
例如:匹配愛開頭

importre

txt="愛你,川川"x=re.findall(r"\b愛",txt)print(x)ifx:
print("匹配到了")else:
print("匹配不到")

運行:

又例如:匹配川結尾

importre

txt="愛你,川川"x=re.findall(r"川\b",txt)print(x)ifx:
print("匹配到了")else:
print("匹配不到")

運行:

匹配中間字符

\B 返回存在指定字符但不在單詞開頭(或結尾)的匹配項 (開頭的“r”確保字符串被視為“原始字符串”)
比如我匹配菜鳥:

importre

txt="我是菜鳥我是菜鳥啊"#檢查是否存在“ain”,但不是在單詞的開頭:x=re.findall(r"\菜鳥",txt)print(x)ifx:
print("匹配到了嘛!!")else:
print("匹配不到哇!")

運行:

但是你匹配結尾就會返回空,比如我匹配鳥:

importre

txt="川川菜鳥"#檢查是否存在“鳥”,但不是在單詞的末尾:x=re.findall(r"鳥\B",txt)print(x)ifx:
print("匹配到了哦")else:
print("找不到")

運行:

匹配數字

\d 返回字符串包含數字(0-9 之間的數字)的匹配項。
例如:

importre

txt="我今年20歲了啊"#檢查字符串是否包含任何位數(0-9的數字)x=re.findall("\d",txt)print(x)ifx:
print("哇哇哇,匹配到數字了")else:
print("找不到哦")

運行:

匹配非數字

\D 返回字符串不包含數字的匹配項
例如:

importre

txt="我今年20歲"#匹配任何非數字符號x=re.findall("\D",txt)print(x)ifx:
print("匹配到了,開心!")else:
print("匹配不到,生氣")

運行:

空格匹配

\s 返回一個匹配字符串包含空白空間字符的匹配項。
例如:

importre

txt="我是川川菜鳥"#匹配任何空格字符x=re.findall("\s",txt)print(x)ifx:
print("匹配到了")else:
print("匹配不到啊")

運行:

匹配非空格

\S 返回字符串不包含空格字符的匹配項

importre

txt="菜鳥是我了"#匹配任意非空字符x=re.findall("\S",txt)print(x)ifx:
print("匹配到了!")else:
print("匹配不到啊")

運行:

匹配任意數字和字母

返回一個匹配,其中字符串包含任何單詞字符(從 a 到 Z 的字符,從 0 到 9 的數字,以及下劃線 _ 字符)
例如:

importre

txt="菜鳥啊是串串呀"#在每個單詞字符(從a到z的字符,0-9的數字)返回匹配項,以及下劃線_字符):x=re.findall("\w",txt)print(x)ifx:
print("匹配到了啊")else:
print("匹配不到哇")

運行:

匹配任意非數字和字母

返回字符串不包含任何單詞字符的匹配項,在每個非單詞字符中返回匹配(不在A和Z之間的字符。“!”,“?”空白位等)
例如:

importre

txt="菜鳥是我嘛?我不信!!"#在每個非單詞字符中返回匹配(不在A和Z之間的字符。“!”,“?”空白位等):x=re.findall("\W",txt)print(x)ifx:
print("匹配到了!")else:
print("匹配不到啊")

運行:

匹配結尾

\Z 如果指定的字符位于字符串的末尾,則返回匹配項。
例如:

importre

txt="川川是菜鳥啊"x=re.findall("啊\Z",txt)print(x)ifx:
print("匹配到了哦!")else:
print("匹配不到")

集合套裝

指定符范圍匹配

例如集合:[arn]

importre

txt="TheraininSpain"x=re.findall("[arn]",txt)print(x)ifx:
print("匹配到了!")else:
print("匹配不到")

匹配任意范圍內小寫字母

返回任何小寫字符的匹配項,按字母順序在 a 和 n 之間。
例如:

importre

txt="helloworld"x=re.findall("[a-n]",txt)print(x)ifx:
print("匹配到了!")else:
print("匹配不到")

運行:

同樣的道理,依次其它情況如下:

[^arn] 返回除 a、r 和 n 之外的任何字符的匹配項

[0123] 返回存在任何指定數字(0、1、2 或 3)的匹配項

[0-9] 返回 0 到 9 之間任意數字的匹配項

[0-5][0-9] 返回 00 到 59 中任意兩位數的匹配項

[a-zA-Z] 按字母順序返回 a 和 z 之間的任何字符的匹配,小寫或大寫

[+] 在集合中,+, *, ., |, (), $,{} 沒有特殊含義,所以 [+] 的意思是:返回字符串中任意 + 字符的匹配項。這個我i舉個例子:

importre

txt="5+6=11"#檢查字符串是否有任何+字符:x=re.findall("[+]",txt)print(x)ifx:
print("匹配到了")else:
print("匹配不到")

運行:

匹配對象

匹配對象是包含有關搜索和結果的信息的對象。注意:如果沒有匹配,None將返回值,而不是匹配對象。
直接舉個例子:
執行將返回匹配對象的搜索

importre#search()函數返回一個Match對象:txt="helloworld"x=re.search("wo",txt)print(x)

運行:

Match 對象具有用于檢索有關搜索和結果的信息的屬性和方法:

span()返回一個包含匹配開始和結束位置的元組。
string返回傳遞給函數的字符串
group()返回字符串中匹配的部分

span函數

例如:打印第一個匹配項的位置(開始和結束位置)。正則表達式查找任何以大寫“S”開頭的單詞:

importre#搜索單詞開頭的大寫“S”字符,并打印其位置txt="TheraininSpain"x=re.search(r"\bS\w+",txt)print(x.span())

運行:

string函數

例如:打印傳遞給函數的字符串

importre#返回字符串txt="TheraininSpain"x=re.search(r"\bS\w+",txt)print(x.string)

group函數

例如:打印字符串中匹配的部分。正則表達式查找任何以大寫“S”開頭的單詞

importre#搜索單詞開頭的大寫“w”字符,并打印該單詞:txt="helloworld"x=re.search(r"\bw\w+",txt)print(x.group())

運行:

注意:如果沒有匹配,None將返回值,而不是匹配對象。

總結

以上是生活随笔為你收集整理的python正则表达式相关知识有哪些的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。