国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python re模塊怎么實現正則表達式?具體操作是什么?

89542767 / 426人閱讀

  小編寫這篇文章的一個主要目的,主要是給大家去做一個介紹,介紹的內容主要是關于Python re模塊的相關知識。包括怎么實現其正則表達式。具體的正則表達式要怎么去寫呢?就這些問題,下文會給大家一個詳細解答。


  一、前言


  在Python提供了re模塊,用于實現正則表達式的操作。在實現時,可以使用re模塊提供的方法(如,search()、match()、findall()等)進行字符串處理,也可以先使用re模塊的compile()方法將模式字符串轉換為正則表達式對象,然后再使用該正則表達式對象的相關方法來操作字符串。


  如果使用re模塊時,未將其引入,將拋出異常如圖所示:

01.png

  二、匹配字符串


  匹配字符串可以使用re模塊提供的match()、seardch()和findall()等方法。


  1.使用match()方法進行匹配


  match()方法用于從字符串的開始處進行匹配,如果在起始位置匹配成功,則返回Match對象,否則返回None,語法格式如下:


  re.match(pattern,string,[flags])


  參數說明:


  pattern:表示模式字符串,由要匹配的正則表達式轉換而來


  string:表示要匹配的字符串


  flags:可選參數,表示標志位,用于控制匹配方式,如是否區分字母大小寫。常用的標志如表所示:

02.png

  例如,匹配字符串是否以“mr_”開頭,不區分字母大小寫,代碼如下:


  import re
  pattern=r"mr_w+"#模式匹配字符串
  string="MR_SHOP mr_shop"#要匹配的字符串
  match=re.match(pattern,string,re.I)#匹配字符,不區分大小寫
  print(match)#輸出匹配結果
  string="項目名稱MR_SHOP mr_shop"
  match=re.match(pattern,string,re.I)#匹配字符,不區分大小寫
  print(match)#輸出匹配結果


  執行結果如下:

03.png

  從上面執行結果中可以看出,字符串"MR_SHOP"是以“mr_”開頭,所以返回一個match對象,而字符串“項目名稱MR_SHOP”不是以“mr_”開頭,將返回“None”。這是因為match()方法從字符串的開始位置開始匹配,當第一個字母不符合條件時,則不再進行匹配,直接返回None。


  Match對象中包含了匹配值得位置和匹配數據,其中:


  要獲取匹配值的起始位置可以使用Match對象的start()方法;


  要獲得匹配值的結束位置可以使用end()方法;


  通過span()方法可以返回匹配位置元組;


  通過string屬性可以獲取要匹配的字符串


  代碼如下:


  import re
  pattern=r"mr_w+"#模式匹配字符串
  string="MR_SHOP mr_shop"#要匹配的字符串
  match=re.match(pattern,string,re.I)#匹配字符,不區分大小寫
  print("匹配值的起始位置",match.start())
  print("匹配值的結束位置",match.end())
  print("匹配位置元組",match.span())
  print("要匹配的字符串",match.string)
  print("匹配數據",match.group())


  執行結果如下:

04.png

  2.使用search()方法進行匹配


  search()方法用于在整個字符串搜索第一個匹配值,如果匹配成功,則返回match對象,否則返回None,語法格式如下:


  re.search(pattern,string,[flags])


  參數說明:


  pattern:表示模式字符串,由要匹配的正則表達式轉換而來


  string:表示要匹配的字符串


  flags:可選參數,表示標志位,用于控制匹配方式,如是否區分字母大小寫。


  例如,所示一個以“mr_”開頭的字符串,不區分大小寫,代碼如下:


  import re
  pattern=r"mr_w+"#模式匹配字符串
  string="MR_SHOP mr_shop"#要匹配的字符串
  match=re.search(pattern,string,re.I)#匹配字符,不區分大小寫
  print(match)#輸出匹配結果
  string="項目名稱MR_SHOP mr_shop"
  match=re.search(pattern,string,re.I)#匹配字符,不區分大小寫
  print(match)#輸出匹配結果

  執行結果如下:

06.png

  從上面運行結果中可以看出,search()方法不僅僅是在字符串的起始位置搜索,其他位置有符合的匹配也可以。


  3.使用findall()方法進行匹配


  findall()方法用于整個字符串中的搜索所有符合正則表達式的字符串,并以列表的形式返回,如果匹配成功,則返回包含匹配結構的列表,否則返回空列表。其語法格式如下:


  re.findall(pattern,string,[flags])


  參數說明:


  pattern:表示模式字符串,由要匹配的正則表達式轉換而來


  string:表示要匹配的字符串


  flags:可選參數,表示標志位,用于控制匹配方式,如是否區分字母大小寫。


  例如,所示一個以“mr_”開頭的字符串,不區分大小寫,代碼如下:


  import re
  pattern=r"mr_w+"#模式匹配字符串
  string="MR_SHOP mr_shop"#要匹配的字符串
  match=re.findall(pattern,string,re.I)#匹配字符,不區分大小寫
  print(match)#輸出匹配結果
  string="項目名稱MR_SHOP mr_shop"
  match=re.findall(pattern,string,re.I)#匹配字符,不區分大小寫
  print(match)#輸出匹配結果


  執行結果如下:

07.png

  如果在指定的模式字符串中,包含分組,則返回與分組匹配的文本列表。例如:


  import re
  pattern=r"[1-9]{1,3}(.[0-9]{1,3}){3}"#模式字符串
  str1="127.0.0.1 192.168.1.66"#要匹配的字符串
  match=re.findall(pattern,str1)#進行模式匹配
  print(match)


  執行結果如下:

08.png

  從上面結果中可以看出,并沒有得到匹配的IP地址,這是因為在模式字符串中出現了分組,所以得到的結果是根據分組進行匹配的結果,即“(.[0-9]{1,3})”匹配的結果。如果想獲取整個模式字符串的匹配,可以將整個模式字符串使用一對小括號進行分組,然后再獲取結果時,只取返回值列表的每個元素(是一個元組)的第1個元素。代碼如下:


  import re
  pattern=r"([1-9]{1,3}(.[0-9]{1,3}){3})"#模式字符串
  str1="127.0.0.1 192.168.1.66"#要匹配的字符串
  match=re.findall(pattern,str1)#進行模式匹配
  for item in match:
  print(item[0])


  執行結果如下:

09.png

  三、替換字符串


  sub()方法用于實現字符串替換,語法格式如下:


  re.sub(pattern,sep1,string,count,flags)


  參數說明:


  pattern:表示模式字符串,由要匹配的正則表達式轉換而來


  sep1:表示替換的字符串


  string:表示查找要被替換的原始字符串


  count:可以參數,表示模式匹配后替換


  flags:可選參數,表示標志位,用于控制匹配方式,如是否區分字母大小寫。


  import re
  pattern=r"1[34578]d{9}"#定義要替換的模式字符串
  string="中獎號碼為:84978981聯系電話為:13611111111"
  result=re.sub(pattern,"1xxxxxxxxxx",string)
  print(result)


  執行結果如下:

11.png

  四、使用正則表達式分割字符串


  splist()方法用于實現根據正則表達式分割字符串,并以列表的形式返回,其作用與字符串對象的splist()方法類似,所不同的就是分割字符由模式字符串指定。語法格式如下:


  re.splist(pattern,string,[maxsplist],[flags])


  參數說明:


  pattern:表示模式字符串,由要匹配的正則表達式轉換而來


  string:表示要匹配的字符串


  maxsplist:可選參數,表示最大的拆分次數。


  flags:可選參數,表示標志位,用于控制匹配方式,如是否區分字母大小寫。


  例如:從給定的URL地址中提取出請求地址和各個參數,代碼如下:


  import re
  pattern=r"[?|&]"#定義分割符
  url='http://www.baidu.com/login.jsp?username="mr"&pwd="mrsoft"'
  result=re.split(pattern,url)#分割字符串
  print(result)

  執行結果如下:


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128299.html

相關文章

  • Python中的正則達式

    摘要:正則表達式就是用來描述他稱為正則集的代數的表達式,因此采用正則表達式這個術語。文本中正則表達式結束搜索的索引值與和方法的同名參數相同。對象是一個編號的正則表達式通過提供的一系列方法可以對文本進行匹配查找。 一、概述 今天這篇文章帶領大家學習一下Python中的正則表達式,當然了,正則表達式本身的內容就足以寫好幾本書了,我們這里列出的內容,僅僅是Python中常用的和基礎的一些內容。 那...

    Juven 評論0 收藏0
  • Python正則達式保姆式教學,帶你精通大名鼎鼎的正則

    摘要:今天來給大家分享一份關于比較詳細的正則表達式寶典,學會之后你將對正則表達式達到精通的狀態。正則表達式是用在方法當中,大多數的字符串檢索都可以通過來完成。導入模塊在使用正則表達式之前,需要導入模塊。 ...

    tulayang 評論0 收藏0
  • 初探python之做一個簡單小爬蟲

    摘要:準備工作初探,這個文章屬于自己的一個總結。所以教程面向新手,無技術含量。凡是報錯信息看到,就是表示縮進不一致。注由于原網址不方便公布,代碼中的網址全部替換為了。 準備工作 初探python,這個文章屬于自己的一個總結。所以教程面向新手,無技術含量。python環境Linux基本都有,Windows下官網也提供了便利的安裝包,怎么安裝配置網上有很多教程在此就不一一說明。我使用的pytho...

    Juven 評論0 收藏0
  • python爬蟲抓取純靜態網站及其資源

    摘要:下面跟大家詳細分享一下寫爬蟲抓取靜態網站的全過程。而我們上面說的元字符都代表一定的規則和占據一定的字符。 遇到的需求 前段時間需要快速做個靜態展示頁面,要求是響應式和較美觀。由于時間較短,自己動手寫的話也有點麻煩,所以就打算上網找現成的。 中途找到了幾個頁面發現不錯,然后就開始思考怎么把頁面給下載下來。 由于之前還沒有了解過爬蟲,自然也就沒有想到可以用爬蟲來抓取網頁內容。所以我采取的辦...

    daydream 評論0 收藏0
  • 怎么python正則達式提取/匹配中文漢字

      小編寫這篇文章的一個主要目的,主要是給大家去做一個解答,解答的內容主要還是python相關事宜,比如,可以用python正則表達式去匹配和提取中文漢字,那么,具體的內容做法是什么呢?下面就給大家詳細解答下。  python用正則表達式提取中文  Python re正則匹配中文,其實非常簡單,把中文的unicode字符串轉換成utf-8格式就可以了,然后可以在re中隨意調用  unicode中中...

    89542767 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<