欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

對python3中的RE(正則表達式)-詳細總結

系統 1981 0

1.引入正則模塊(Regular Expression)

要使用python3中的RE則必須引入 re模塊

            
import re #引入正則表達式
          

2.主要使用的方法 match(), 從左到右進行匹配

            
#pattern 為要校驗的規則
#str 為要進行校驗的字符串
result = re.match(pattern, str) 
 
#如果result不為None,則group方法則對result進行數據提取
          

3. 正則表達式

1??單字符匹配規則

            
字符 功能
.  匹配任意1個字符(除了\n)
[]  匹配[]中列舉的字符
\d  匹配數字,也就是0-9
\D  匹配非數字,也就是匹配不是數字的字符
\s  匹配空白符,也就是 空格\tab
\S  匹配非空白符,\s取反
\w  陪陪單詞字符, a-z, A-Z, 0-9, _
\W  匹配非單詞字符, \w取反
          

2??表示數量的規則

            
字符 功能
*  匹配前一個字符出現0次多次或者無限次,可有可無,可多可少
+  匹配前一個字符出現1次多次或則無限次,直到出現一次
?  匹配前一個字符出現1次或者0次,要么有1次,要么沒有
{m}  匹配前一個字符出現m次
{m,} 匹配前一個字符至少出現m次
{m,n} 匹配前一個字符出現m到n次
 
          

例一: 驗證手機號碼是否符合規則(不考慮邊界問題)

            
#首先清楚手機號的規則
#1.都是數字 2.長度為11 3.第一位是1 4.第二位是35678中的一位
 
pattern = "1[35678]\d{9}"
phoneStr = "18230092223"
 
result = re.match(pattern, phoneStr)
result.group()
 
#執行結果如下圖:

          

對python3中的RE(正則表達式)-詳細總結_第1張圖片

4. 原始字符串raw, 先來看如下實例:

對python3中的RE(正則表達式)-詳細總結_第2張圖片

在上圖中: 在給str賦值"\nabc"前加上"r"之后,python解釋器會自動給str的值"\nabc"在加上一個"\".

使str在被打印的時候,能夠保持原始字符串的值"\nabc"打印出來.

例二: (原始字符串在正則表達式中的應用)

對python3中的RE(正則表達式)-詳細總結_第3張圖片

假若沒有原始自付出r,則我們就要進行如下的操作: 給pattern加上雙倍的"\"以避免轉義字符中減少"\".會比較麻煩

當我們使用r原始字符串時,就不必考慮字符串的轉移問題,更易集中解決字符匹配問題.

對python3中的RE(正則表達式)-詳細總結_第4張圖片

5. 表示邊界

            
字符 功能
^  匹配字符串開頭
$  匹配字符串結尾
\b  匹配一個單詞的邊界
\B  匹配非單詞邊界
          

例三: 邊界(制定規則來匹配str="ho ve r")

            
import re
 
#定義規則匹配str="ho ve r"
#1. 以字母開始
#2. 中間有空字符
#3. ve兩邊分別限定匹配單詞邊界
 
pattern = r"^\w+\s\bve\b\sr"
str = "ho ve r"
result = re.match(pattern, str)
result.group()
          

6. 匹配分組

            
字符  功能
|   匹配左右任意一個表達式
(ab)  將括號中字符作為一個分組
\num  引用分組num匹配到的字符串
(?P
            
              ) 分組起別名
(?P=name) 引用別名為name分組匹配到的字符串
            
          

例四: 匹配出0-100之間的數字

            
import re
 
#匹配出0-100之間的數字
#首先:正則是從左往又開始匹配
#經過分析: 可以將0-100分為三部分
#1. 0  "0$"
#2. 100  "100$"
#3. 1-99  "[1-9]\d{0,1}$"
#所以整合如下
 
pattern = r"0$|100$|[1-9]\d{0,1}$"
#測試數據為0,3,27,100,123
result = re.match(pattern, "27")
result.group()
 
#將0考慮到1-99上,上述pattern還可以簡寫為:pattern=r"100$|[1-9]?\d{0,1}$"
#測試結果如下圖:
          

對python3中的RE(正則表達式)-詳細總結_第5張圖片

例五: 匹配分組,獲取頁面中的

標簽中的內容

              
import re
#匹配分組,獲取頁面
              

標簽中的內容, 爬蟲的時候會用到 str = "

hello world!

" pattern = r"

(.*)

" result = re.match(pattern, str) result.group() #執行如下圖

對python3中的RE(正則表達式)-詳細總結_第6張圖片

例六: 分組引用, 精確獲取多個標簽內的內容

              
import re
 
#引用分組,精確獲取多個標簽內的內容
#"\1"是對第一個分組的引用,同理......
 
str = "
              
                

hello world!

" pattern = r"<(.+)><(.+)>.*" result = re.match(pattern, str) result.groups() #執行如下圖:

對python3中的RE(正則表達式)-詳細總結_第7張圖片

例七-2:分組起別名

              
import re
 
#分組起別名
 
str = "
              
                

hello world!

" pattern = "<(?P .+)><(?P .+)>(?P .*)" result = re.match(pattern, str) result.groups() #執行如下圖:

對python3中的RE(正則表達式)-詳細總結_第8張圖片

以上這篇對python3中的RE(正則表達式)-詳細總結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久热国产在线视频 | 亚洲一区二区三区在线影院 | 精品国产一区二区三区成人影院 | 日韩三级欧美 | 欧美日韩在线一区 | 国产午夜免费一区二区三区 | 国内福利视频 | 亚洲最大黄色网址 | 亚洲欧洲精品成人久久奇米网 | 超碰97av 在线人人操 | 亚洲精品高清视频 | 久久一本日韩精品中文字幕屁孩 | 久久久123| 欧美在线一区二区三区欧美 | 亚洲激情第二页 | 亚洲成人免费在线 | 日韩日b视频 | 亚洲欧美在线播放 | 久久最新 | 亚洲日韩精品AV无码富二代 | 99久久精品免费 | 精品国产一区在线观看 | 五月天色婷婷综合 | 久久韩剧网 | 男女精品视频 | 视频一区二区三区四区五区 | 久久精品这里是免费国产 | 在线视频 中文字幕 | 日本阿v视频高清在线 | 免费观看一区二区三区毛片 | 一区二区亚洲 | 亚洲乱码AV久久久久久久 | 亚洲精品一区国产 | 一区二区三区成人 | 亚洲第一激情 | 久久视频在线视频 | 久久国产福利 | 亚洲99| 欧美日韩国产在线 | 特黄特色的大片观看免费视频 | 在线a人片免费观看国产 |