史上最全 Python Re 模块讲解(二)
生活随笔
收集整理的這篇文章主要介紹了
史上最全 Python Re 模块讲解(二)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
繼上文
https://blog.csdn.net/weixin_42625143/article/details/95329033
正則表達(dá)式
元字符
“.” :通配符,除換行符外的任意的1個(gè)字符
“” : 轉(zhuǎn)義符
pat=re.compile( . ) pat.search( abc.efg ).group() #匹配到. . pat.findall( abc.efg ) #不用group,返回列表 [ . ]“[…]” : 字符集合,匹配里面的任意一個(gè)元素
>>> pat=re.compile( [abc] ) >>> pat.match( axbycz ).group() a >>> pat.search( axbycz ).group() a >>> pat.findall( axbycz ) [ a , b , c ]“d” : 數(shù)字
>>> pat=re.compile( d ) >>> pat.search( ax1by2cz3 ).group() #匹配到第一個(gè)數(shù)字:1,返回 1>>> pat.match( ax1by2cz3 ).group() #匹配不到(首個(gè)不是)返回None,報(bào)錯(cuò),match匹配字符串頭 Traceback (most recent call last):File "<stdin>", line 1, in <module> AttributeError: NoneType object has no attribute group>>> pat.findall( ax1by2cz3 ) #匹配所有的數(shù)字,列表返回 [ 1 , 2 , 3 ]“D” : 非數(shù)字
>>> pat=re.compile( D ) >>> pat.match( ax1by2cz3 ).group() a >>> pat.search( ax1by2cz3 ).group() a >>> pat.findall( ax1by2cz3 ) [ a , x , b , y , c , z ]“s” :空白字符 、 、
、
、空格
“S” :非空白字符
>>> pat=re.compile( S ) >>> pat.search( ax1 by2 cz3 ).group() a >>> pat.findall( ax1 by2 cz3 ) [ a , x , 1 , b , y , 2 , c , z , 3 ]“w” :單個(gè)的 數(shù)字和字母,[A-Za-z0-9]
>>> pat=re.compile( w ) >>> pat.search( 1a2b3c ).group() 1 >>> pat.findall( 1a2b3c ) [ 1 , a , 2 , b , 3 , c ] >>> pat.match( 1a2b3c ).group() 1“W”:非單詞字符,除數(shù)字和字母外
>>> pat=re.compile( W ) >>> pat.findall( 1a2我b3c ) #python是用三字節(jié)表示一個(gè)漢字 [ ? , ? , ‘ ] >>> pat.search( 1a2我b3c ).group() ?數(shù)量詞
“*” :0次或多次
( 乘0會(huì)變成0)
“+” :1次或多次
“+” :1次或多次
“?” :0次或1次,match,search 不會(huì)出現(xiàn)none,會(huì)出現(xiàn)’ ‘ (因?yàn)?次也是符合的)
0次或1次不是指[xxx]這個(gè)集合,而是其中的任何的一個(gè)字符
“數(shù)量詞?” :非貪婪模式:只匹配最少的(盡可能少);默認(rèn)貪婪模式:匹配最多的(盡可能多)
>>> pat = re.compile( [abc]+ ) #貪婪模式 >>> pat.match( abcdefabcabc ).group() #匹配盡可能多的:abc abc >>> pat.match( bbabcdefabcabc ).group() bbabc >>> pat.search( dbbabcdefabcabc ).group() bbabc >>> pat.findall( abcdefabcabc ) [ abc , abcabc ]>>> pat = re.compile( [abc]+? ) #非貪婪模式:+? >>> pat.match( abcdefabcabc ).group() #匹配盡可能少的:a、b、c a >>> pat.search( dbbabcdefabcabc ).group() b >>> pat.findall( abcdefabcabc ) [ a , b , c , a , b , c , a , b , c ]總結(jié)
以上是生活随笔為你收集整理的史上最全 Python Re 模块讲解(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 史上最全 Python Re 模块讲解(
- 下一篇: 史上最全 Python Re 模块讲解(