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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

pyhton re模块

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyhton re模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正則表達式本身是一種小型的、高度專業化的編程語言,而在python中,通過內嵌集成re模塊,程序員們可以直接調用來實現正則匹配。正則表達式模式被編譯成一系列的字節碼,然后由用C編寫的匹配引擎執行。

re的匹配語法 ?%re.name("匹配規則", "要匹配的字符串")

re.match() 從頭開始匹配,即只匹配第一個值
re.search() 匹配包含,匹配到第一個就不往下匹配
re.findall() 把所有匹配到到的字符以列表的形式返回
re.splital() 以匹配到的字符當做列表分隔符
re.sub () 匹配字符并替換
re.fullmatch() 全部匹配

>>> import re
>>> a = 'a2fho54d'
>>> re.match('[0-9]',a)
>>> re.match('a',a)
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>> re.search('[0-9]',a)
<_sre.SRE_Match object; span=(1, 2), match='2'>
>>> re.findall('[0-9]',a)
['2', '5', '4']
View Code

如何將match和search方法返回的對象打印出來呢?

import re
a = 'a2fho54d'
re_res = re.search('[0-9]', a) 
if re_res:print(re_res.group())  ##############
2
View Code (二)常用正則表達式符號
  1. '.'?????默認匹配除\n之外的任意一個字符,若指定flag DOTALL,則匹配任意字符,包括換行
  2. '^'?????匹配字符開頭,若指定flags MULTILINE,這種也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
  3. '$'?????匹配字符結尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
  4. '*'?????匹配*號前的字符0次或多次,re.findall("ab*","cabb3abcbbac")? 結果為['abb',?'ab',?'a']
  5. '+'?????匹配前一個字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 結果['ab',?'abb']
  6. '?'?????匹配前一個字符1次或0
  7. '{m}'???匹配前一個字符m次
  8. '{n,m}'?匹配前一個字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 結果'abb',?'ab',?'abb']
  9. '|'?????匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 結果'ABC'
  10. '(...)'?分組匹配,re.search("(abc){2}a(123|456)c",?"abcabca456c").group() 結果 abcabca456c

'\d' ? 匹配任何十進制數,它相當于類[0-9]
'\d+' ?如果需要匹配一位或者多位數的數字時用
'\D' ? 匹配任何非數字字符,它相當于類[^0-9]
'\s' ? ?匹配任何空白字符,它相當于類[\t\n\r\f\v]
'\S' ? ?匹配任何非空白字符
'\w' ? ? ?匹配包括下劃線在內任何字母數字字符,它相當于類[a-zA-Z0-9_]
'\W' ? ?匹配非任何字母數字字符包括下劃線在內,它相當于類[^a-zA-Z0-9_]

操作代碼如下:

>>> import re
>>> re.match('.','fjfi34')
<_sre.SRE_Match object; span=(0, 1), match='f'>
>>> re.match('.','383449')
<_sre.SRE_Match object; span=(0, 1), match='3'>
>>> re.match('.','\fjidak')
<_sre.SRE_Match object; span=(0, 1), match='\x0c'>

? >>> re.match('..','abdf')
? <_sre.SRE_Match object; span=(0, 2), match='ab'>

>>> re.search('^a','abgd')   #表示匹配以a開頭
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>> re.search('^ab','abghus')    #此時等價于re.match('ab','abhufjj')
<_sre.SRE_Match object; span=(0, 2), match='ab'>
>>> re.search('^b','abghuus')    #匹配不上
>>>
>>> re.search('b$','fsffb')   #表示匹配以b結尾
<_sre.SRE_Match object; span=(4, 5), match='b'>

>>> re.search('a*','fhsbs') ? #表示匹配*前面的字符多次或0次
<_sre.SRE_Match object; span=(0, 0), match=''>
>>> re.search('a*','afhusd')
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>> re.search('abc*','abchuccabcccug') ? #a必須匹配和b連著,b可以是0個或多個
<_sre.SRE_Match object; span=(0, 3), match='abc'>

......................

?

轉載于:https://www.cnblogs.com/ydb258741/p/9240499.html

總結

以上是生活随笔為你收集整理的pyhton re模块的全部內容,希望文章能夠幫你解決所遇到的問題。

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