日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python正则表达式元字符用法_正则表达式-常用元字符的基本使用

發布時間:2025/3/15 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python正则表达式元字符用法_正则表达式-常用元字符的基本使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用元字符有:[]? ^? $? \? *? +? ?? {} .

python中使用正則表達式需要導入re模塊

下面介紹用法

[] 指定一個字符集,[ABC]表示ABC的字符集,[^ABC] 取反,除了ABC的字符集。

>>> import re

>>> r = r"ABC[ABC]" #定義一個正則

>>>

>>> re.findall(r,'ABCA') #使用findall進行匹配

['ABCA']

>>> re.findall(r,'ABCB')

['ABCB']

>>> re.findall(r,'ABCD')

[]

>>> r = r"ABC[^ABC]" #取反

>>> re.findall(r,'ABCD')

['ABCD']

>>> re.findall(r,'ABCA')

[]

>>>

^ 匹配行首 ^h 如果行首是h,則返回h,如果不是h則返回空

>>> r = r"^h"

>>> re.findall(r,'hello')

['h']

>>> re.findall(r,'ehllo')

[]

>>>

$ 匹配行尾,和^是反著來的,不難理解,匹配末尾

>>> r = r"h$"

>>> re.findall(r,'hello')

[]

>>> re.findall(r,'olleh')

['h']

>>>

\ 轉義字符

反斜杠后面加不同的字符以表示不同的特殊含義

\d 匹配任何十進制數 相當于[0-9]

\D 匹配任何非數字字符,相當于[^0-9]

\s 匹配任何空白字符,相當于[\t\n\r\f\v]

\S 匹配任何非空白字符,相當于[^\t\n\r\f\v]

\w 匹配任何字母數字字符,相當于[a-zA-Z0-9]

\W 匹配任何非字母數字字符,相當于[^a-zA-Z0-9]

>>> r1 = r"day=\d"

>>> r2 = r"day=\D"

>>> st = 'day=1 day=2 day=3 day=a day=b day=c'

>>> re.findall(r1,st)

['day=1', 'day=2', 'day=3']

>>> re.findall(r2,st)

['day=a', 'day=b', 'day=c']

>>>

>>> r3 = r"enter=\s"

>>> r4 = r"enter=\S"

>>>

>>> st = '''

enter=

enter=1 enter= enter=3 enter=

enter=

'''

>>> re.findall(r3,st)

['enter=\n', 'enter= ', 'enter=\n', 'enter=\n']

>>> re.findall(r4,st)

['enter=1', 'enter=3']

>>>

>>> r5 = r"\w"

>>> r6 = r"\W"

>>> st = 'abcdefg1234567!@#$%^&'

>>> re.findall(r5,st)

['a', 'b', 'c', 'd', 'e', 'f', 'g', '1', '2', '3', '4', '5', '6', '7']

>>> re.findall(r6,st)

['!', '@', '#', '$', '%', '^', '&']

>>>

* + ? 都是重復的意思

*重復0次或多次、+重復1次或多次、?重復0次或1次

>>> r1 = r"ab*"

>>> re.findall(r1,'a')

['a']

>>> re.findall(r1,'ab')

['ab']

>>> re.findall(r1,'abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')

['abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb']

>>>

>>> r2 = r"ab+"

>>> re.findall(r2,'ab')

['ab']

>>> re.findall(r2,'a')

[]

>>> re.findall(r2,'abbbbbbbbbbbbbbbbbbbbbbbbbbbbb')

['abbbbbbbbbbbbbbbbbbbbbbbbbbbbb']

>>>

>>> r3 = r"ab?"

>>> re.findall(r3,'a')

['a']

>>> re.findall(r3,'ab')

['ab']

>>> re.findall(r3,'abb')

['ab']

>>> re.findall(r3,'abbbbbbbbbb')

['ab']

>>>

{}表示重復的范圍,{m,n}最少重復m次,最多重復n次

舉個成績的例子吧,最少1位,最多2位。

>>> r1 = r"\d{1,3}"

>>> re.findall(r1,'100')

['100']

>>> re.findall(r1,'1')

['1']

>>> re.findall(r1,'')

[]

>>> re.findall(r1,'1000')

['100', '0']

>>> re.findall(r1,'1001')

['100', '1']

>>>

它會把多余的位扔到列表的后面元素中。

.

.的用法就是匹配所有,看下面例子即可

.*是匹配0次或多次,.+是1次或多次,一般用+

>>> r1 = r"src=.*"

>>> re.findall(r1,'src=img http qwerqwer')

['src=img http qwerqwer']

>>> re.findall(r1,'src=img http hello')

['src=img http hello']

>>>

>>> r1 = r".*.com"

>>> re.findall(r1,'www.com')

['www.com']

>>> re.findall(r1,'hello.com')

['hello.com']

>>>

讀書和健身總有一個在路上

總結

以上是生活随笔為你收集整理的python正则表达式元字符用法_正则表达式-常用元字符的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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