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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

正则只能出现特定字符_python正则表达式的简单使用总结

發布時間:2025/3/8 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则只能出现特定字符_python正则表达式的简单使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文作者:小哲,雷鋒網

在編程中,經常會涉及到字符串的操作,一個常用的策略就是利用split函數,然后對于特定的字符串進行匹配,但是這種方法格式復雜,可復用性較差。

正則表達式是處理字符串匹配一個必不可少的方法,定義一個語義規則,來進行特定的字符字符串的規則。

正則表達式速查表

1 元字符,用特殊符號表示一類元素

語法說明語法示例匹配字符
.匹配除換行符以外的任意字符(這是一個小紅點兒)a.cabc
\w匹配字母或數字或下劃線 (可以記成 word )a\wca2c
\b匹配一個單詞的邊界foo\b匹配foo,foo. 但不匹配foobar
\B匹配空字符串,但 不 能在詞的開頭或者結尾py\B匹配python py2 py3, 但不匹配py.
^匹配字符串的開始^abcabc
\W匹配非字母數字下劃線a\Wba b
\d匹配數字 (可記成 digit )a\dca2c
\D匹配非數字a\Dcabc
\s匹配任意的空白符 (可以記成 space )a\sba b
\S匹配非空白符a\Sbacb
a|b匹配字符a或字符b。(長的寫前面,短的寫后面)abc|defabc 或def
()匹配括號內的表達式,也表示一個組(abc)abc
[...]匹配字符組中的字符a[bcd]eabe 或ace或ade
[^...]匹配除了字符組中字符的所有字符a[bcd]ease

2 字符組 [],限制范圍,某個位置只能出現這個范圍內的某個元素。

語法說明語法示例匹配字符
[0123456789]只能匹配0-9數字,可寫成[0-9][0123456789]0或1或2...
[a-z]只能匹配小寫字母[a-z]d
[A-Z]只能匹配大寫字母[A-Z]D
[0-9a-fA-F]可以匹配16進制的某個數[0-9a-fA-F]D

3 量詞,表示數量,約束前面元字符出現的次數。

語法說明語法示例匹配字符
*重復前一個字符零次或多次abc*ab 或abccc
+重復前一個字符一次或多次abc+abc 或abccc
?重復前一個字符零次或一次abc?ab 或abc
{n}重復前一個字符n次abc{3}abccc
{n,}重復前一個字符至少n次abc{3,}abccccc
{n,m}重復前一個字符n到m次abc{1,5}abc或abcc或abccccc

re模塊包函數

# 導入包import re################re.compile() 編譯# 將正則表達式編譯成一個正則表表達式對象。# 如果一個正則表達式在程序中只用一次,就沒必要編譯了。# 如果同一個正則表達式要被多次使用時,就需要對表達式進行編譯,以便后續使用。
例如:匹配www.baidu.com
pattern = r'w*\.[a-z]{5}\.[a-z]*'
prog = re.compile(pattern)
string = 'www.baidu.com'
result = prog.match(string)# 如果匹配成功返回match對象,不成功返回None###################re.findall() 返回列表# 一、re.findall(正則表達式,待匹配的字符串,flags=0)# 二、findall默認只顯示分組中的,分組有優先級。
pattern = r'w{3}\.(baidu|oldboy)\.com'
prog = re.compile(pattern)
ret = re.findall(prog, 'www.baidu.com')
print(ret)# 結果:['baidu']# 三、加上 ?: 取消分組的優先# ret = re.findall('www\.(?:baidu|oldboy)\.com', 'www.baidu.com')# print(ret)# 結果:['www.baidu.com']###################re.match()#從頭匹配
re.match(pattern, string, flags=0)#如果 string 開始的0或者多個字符匹配到了正則表達式樣式,就返回一個相應的 匹配對象 。如果沒有匹配,就返回 None ;#需要group(),才能返回值###################re.search()#掃描整個 字符串 找到匹配樣式的第一個位置,并返回一個相應的 匹配對象。如果沒有匹配,就返回一個 None ;注#同樣需要group(),才能的返回值####################re.sub()、re.subn()# re.sub()
re.sub(r'\sAND\s', ' & ', 'Baked Beans And Spam', flags=re.IGNORECASE) # 【表達式表示替換內容,要替換的新元素,替換對象,替換次數】# 結果為:'Baked Beans & Spam'# re.subn()
re.subn(r'\sAND\s', ' & ', 'Baked Beans And Spam', flags=re.IGNORECASE) # 【返回元組,前面是替換完的結果,后面是替換的次數】
結果是('Baked Beans & Spam', 1)

總結

以上是生活随笔為你收集整理的正则只能出现特定字符_python正则表达式的简单使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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