最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python re模塊介紹

 更新時(shí)間:2014年11月30日 21:04:09   投稿:mdxy-dxy  
這篇文章主要介紹了Python re模塊介紹,需要的朋友可以參考下

Python中轉(zhuǎn)義字符

正則表達(dá)式使用反斜杠” \ “來代表特殊形式或用作轉(zhuǎn)義字符,這里跟Python的語法沖突,因此,Python用” \\\\ “表示正則表達(dá)式中的” \ “,因?yàn)檎齽t表達(dá)式中如果要匹配” \ “,需要用\來轉(zhuǎn)義,變成” \\ “,而Python語法中又需要對(duì)字符串中每一個(gè)\進(jìn)行轉(zhuǎn)義,所以就變成了” \\\\ “。
上面的寫法是不是覺得很麻煩,為了使正則表達(dá)式具有更好的可讀性,Python特別設(shè)計(jì)了原始字符串(raw string),需要提醒你的是,在寫文件路徑的時(shí)候就不要使用raw string了,這里存在陷阱。raw string就是用'r'作為字符串的前綴,如 r”\n”:表示兩個(gè)字符”\”和”n”,而不是換行符了。Python中寫正則表達(dá)式時(shí)推薦使用這種形式。

正則表達(dá)式元字符說明

.  匹配除換行符以外的任意字符
^  匹配字符串的開始
$  匹配字符串的結(jié)束
[] 用來匹配一個(gè)指定的字符類別
?  對(duì)于前一個(gè)字符字符重復(fù)0次到1次
*  對(duì)于前一個(gè)字符重復(fù)0次到無窮次
{} 對(duì)于前一個(gè)字符重復(fù)m次
{m,n} 對(duì)前一個(gè)字符重復(fù)為m到n次
\d 匹配數(shù)字,相當(dāng)于[0-9]
\D 匹配任何非數(shù)字字符,相當(dāng)于[^0-9]
\s 匹配任意的空白符,相當(dāng)于[ fv]
\S 匹配任何非空白字符,相當(dāng)于[^ fv]
\w 匹配任何字母數(shù)字字符,相當(dāng)于[a-zA-Z0-9_]
\W 匹配任何非字母數(shù)字字符,相當(dāng)于[^a-zA-Z0-9_]
\b 匹配單詞的開始或結(jié)束

模塊函數(shù)說明即舉例
re.compile 將正則表達(dá)式編譯成pattern對(duì)象

compile(pattern, flags=0)

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):標(biāo)志位

re.match 只匹配字符串的開始,如果字符串開始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None

match(pattern, string, flags=0)

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):表示要匹配的字符串
第三個(gè)參數(shù):標(biāo)致位,用于控制正則表達(dá)式的匹配方式

re.search 匹配整個(gè)字符串,直到找到一個(gè)匹配

search(pattern, string, flags=0)

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):表示要匹配的字符串
第三個(gè)參數(shù):標(biāo)致位,用于控制正則表達(dá)式的匹配方式

>>> import re
>>> pattern = re.compile(r'linuxeye')
>>> match = pattern.match('jb51.net')
>>> print match
<_sre.SRE_Match object at 0x7f4e96e61c60>
>>> print match.group()
linuxeye
>>> m = pattern.match('blog.jb51.net') #match匹配開頭,沒找到
>>> print m
None
>>> m = pattern.search('blog.jb51.net') #search匹配整個(gè)字符串,直到找到一個(gè)匹配
>>> print m
<_sre.SRE_Match object at 0x7f15abfc6b28>
>>> print m.group()
linuxeye
>>> m = re.match(r'linuxeye','jb51.net') #不用re.compile
>>> print m
<_sre.SRE_Match object at 0x7f4e96e61b90>
>>> print m.group()
linuxeye
>>> m = re.match(r'linuxeye','m.fzitv.net')
>>> print m
None

re.split 用于來分割字符串

split(pattern, string, maxsplit=0)

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):字符串
第三個(gè)參數(shù):最大分割字符串,默認(rèn)為0,表示每個(gè)匹配項(xiàng)都分割
實(shí)例:分割所有的字符串

>>> import re
>>> test_str = "1 2 3 4 5"
>>> re.split(r'\s+',test_str)
['1', '2', '3', '4', '5']
>>> re.split(r'\s+',test_str,2) #分割前2個(gè)
['1', '2', '3 4 5']
 
>>> test_str = "1 . 2. 3 .4 . 5"
>>> re.split(r'\.',test_str)
['1 ', ' 2', ' 3 ', '4 ', ' 5']
>>> re.split(r'\.',test_str,3)
['1 ', ' 2', ' 3 ', '4 . 5']

re.findall 在目標(biāo)字符串查找符合規(guī)則的字符串

findall(pattern, string, flags=0)

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):目標(biāo)字符串
但三個(gè)參數(shù):后面還可以跟一個(gè)規(guī)則選擇項(xiàng)
返回的結(jié)果是一個(gè)列表,建中存放的是符合規(guī)則的字符串,如果沒有符合規(guī)則的字符串唄找到,就會(huì)返回一個(gè)空值

>>> import re
>>> test_mail = '<test01@gmail.com> <test02@gmail.org> test03@gmail.net'
>>> mail_re = re.compile(r'\w+@g....\.[a-z]{3}')
>>> re.findall(mail_re,test_mail)
['test01@gmail.com', 'test02@gmail.org', 'test03@gmail.net']

re.sub 以正則表達(dá)式為基礎(chǔ)的替換工作

sub(pattern, repl, string, count=0)

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):替換后的字符串
第三個(gè)參數(shù):字符串
第四個(gè)參數(shù):替換個(gè)數(shù)。默認(rèn)為0,表示每個(gè)匹配項(xiàng)都替換

>>> test = 'blog.jb51.net jb51.net'
>>> test_re = re.compile(r'\.')
>>> re.sub(test_re,'--',test)
'blog--linuxeye--com linuxeye--com'
>>> re.sub(test_re,'--',test,1)
'blog--jb51.net jb51.net'

相關(guān)文章

  • Python中動(dòng)態(tài)創(chuàng)建類實(shí)例的方法

    Python中動(dòng)態(tài)創(chuàng)建類實(shí)例的方法

    在Java中我們可以通過反射來根據(jù)類名創(chuàng)建類實(shí)例,那么在Python我們?cè)趺磳?shí)現(xiàn)類似功能呢?其實(shí)在Python有一個(gè)builtin函數(shù)import,我們可以使用這個(gè)函數(shù)來在運(yùn)行時(shí)動(dòng)態(tài)加載一些模塊
    2017-03-03
  • Python開發(fā)生產(chǎn)環(huán)境常用的4個(gè)工具(實(shí)用推薦)

    Python開發(fā)生產(chǎn)環(huán)境常用的4個(gè)工具(實(shí)用推薦)

    構(gòu)建優(yōu)秀的軟件需要遵循特定的規(guī)則并執(zhí)行行業(yè)標(biāo)準(zhǔn),如何在真實(shí)的生產(chǎn)環(huán)境開發(fā)中體現(xiàn)呢?在這篇文章中,我將向您展示我在Python項(xiàng)目中設(shè)置的4種工具,以簡(jiǎn)化開發(fā)工作流程并執(zhí)行一些最佳實(shí)踐,這些工具幫助我提高了效率,節(jié)省了時(shí)間,希望你讀完也能有所收獲
    2024-01-01
  • python3利用venv配置虛擬環(huán)境及過程中的小問題小結(jié)

    python3利用venv配置虛擬環(huán)境及過程中的小問題小結(jié)

    這篇文章主要介紹了python3利用venv配置虛擬環(huán)境及過程中的小問題小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • python?實(shí)現(xiàn)syslog?服務(wù)器的詳細(xì)過程

    python?實(shí)現(xiàn)syslog?服務(wù)器的詳細(xì)過程

    這篇文章主要介紹了python?實(shí)現(xiàn)syslog服務(wù)器的詳細(xì)過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 什么是python的列表推導(dǎo)式

    什么是python的列表推導(dǎo)式

    在本篇文章里小編給大家分享了關(guān)于python列表推導(dǎo)式的含義及用法,需要的朋友們可以參考下。
    2020-05-05
  • Jupyter notebook中5個(gè)有趣的魔法命令分享

    Jupyter notebook中5個(gè)有趣的魔法命令分享

    眾?所周知,Jupyter notebook是一個(gè)交互式的Python shell,也就是IPython的封裝版,非常適合用來進(jìn)行數(shù)據(jù)分析和機(jī)器學(xué)習(xí)。本文為大家整理了Jupyter notebook中5個(gè)有趣的魔法命令,感興趣的可以了解一下
    2022-07-07
  • Python基于wordcloud及jieba實(shí)現(xiàn)中國(guó)地圖詞云圖

    Python基于wordcloud及jieba實(shí)現(xiàn)中國(guó)地圖詞云圖

    這篇文章主要介紹了Python基于wordcloud及jieba實(shí)現(xiàn)中國(guó)地圖詞云圖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • PyTorch基本數(shù)據(jù)類型(一)

    PyTorch基本數(shù)據(jù)類型(一)

    這篇文章主要為大家詳細(xì)介紹了PyTorch基本數(shù)據(jù)類型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Python pip替換為阿里源的方法步驟

    Python pip替換為阿里源的方法步驟

    這篇文章主要介紹了Python pip替換為阿里源的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python pyecharts實(shí)現(xiàn)繪制中國(guó)地圖的實(shí)例詳解

    Python pyecharts實(shí)現(xiàn)繪制中國(guó)地圖的實(shí)例詳解

    pyecharts是一個(gè)用于生成 Echarts 圖表的類庫(kù)。Echarts 是百度開源的一個(gè)數(shù)據(jù)可視化 JS 庫(kù)。用 Echarts 生成的圖可視化效果非常棒。本文將通過pyecharts繪制中國(guó)地圖,需要的可以學(xué)習(xí)一下
    2022-01-01

最新評(píng)論

上林县| 施秉县| 弥勒县| 绥阳县| 开江县| 娄烦县| 玉环县| 广汉市| 宜丰县| 进贤县| 象山县| 平凉市| 安岳县| 庄河市| 屏山县| 黄大仙区| 新邵县| 武定县| 汾阳市| 东平县| 哈密市| 沿河| 平安县| 静海县| 鄄城县| 泸西县| 岐山县| 垦利县| 平度市| 汨罗市| 洱源县| 岢岚县| 平乐县| 马公市| 虎林市| 兖州市| 泰州市| 体育| 来凤县| 二连浩特市| 西平县|