正則作為處理字串的一個實用工具,在Python中經常會用到,比如爬蟲爬取資料時常用正則來檢索字串等等,正則運算式已經內嵌在Python中,通過匯入re模塊就可以使用,作為剛學Python的新手大多數都聽說”正則“這個術語,
今天來給大家分享一份關于比較詳細的Python正則運算式寶典,學會之后你將對正則運算式達到精通的狀態,
很多人學習python,不知道從何學起, 很多人學習python,掌握了基本語法過后,不知道在哪里尋找案例上手, 很多已經做案例的人,卻不知道如何去學習更加高深的知識, 那么針對這三類人,我給大家提供一個好的學習平臺,免費領取視頻教程,電子書籍,以及課程的源代碼! QQ群:701698587 歡迎加入,一起討論 一起學習!
一、re模塊
在講正則運算式之前,我們首先得知道哪里用得到正則運算式,正則運算式是用在findall()方法當中,大多數的字串檢索都可以通過findall()來完成,
1.匯入re模塊
在使用正則運算式之前,需要匯入re模塊,
import re
2.findall()的語法:
匯入了re模塊之后就可以使用findall()方法了,那么我們必須要清楚findall()的語法是怎么規定的,
findall(正則運算式,目標字串)
不難看出findall()的是由正則運算式和目標字串組成,目標字串就是你要檢索的東西,那么如何檢索則是通過正則運算式來進行操作,也就是我們今天的重點,
使用findall()之后回傳的結果是一個串列,串列中是符合正則要求的字串
二、正則運算式
(一).字串的匹配
1.普通字符
大多數的字母和字符都可以進行自身匹配,
import re
a = "abc123+-*"
b = re.findall('abc',a)
print(b)
輸出結果:
['abc']
2.元字符
元字符指的是. ^ $ ? + {} \ []之類的特殊字符,通過它們我們可以對目標字串進行個性化檢索,回傳我們要的結果,
這里我給大家介紹10個常用的元字符以及它們的用法,這里我先給大家做1個簡單的匯總,便于記憶,下面會挨個講解每一個元字符的使用,
(1) []
[] 的使用方式主要有以下三種:
- 常用來指定一個字符集,
s = "a123456b"
rule = "a[0-9][1-6][1-6][1-6][1-6][1-6]b" #這里暫時先用這種麻煩點的方法,后面有更容易的,不用敲這么多[1-6]
l = re.findall(rule,s)
print(l)
輸出結果為:
['a123456b']
- 可以表示一個范圍,
例如要在字串"abcabcaccaac"中選出abc元素:
s = "abcabcaccaac"
rule = "a[a,b,c]c" # rule = "a[a-z0-9][a-z0-9][a-z0-9][a-z0-9]c"
l = re.findall(rule, s)
print(l)
輸出結果為:
['abc', 'abc', 'acc', 'aac']
- [] 內的元字符不起作用,只表示普通字符,
例如要在字串“caabcabcaabc”中選出“caa”:
print(re.findall("caa[a,^]", "caa^bcabcaabc"))
輸出結果為:
['caa^']
注意點:當在[]的第一個位置時,表示除了a以外的都進行匹配,例如把[]中的和a換一下位置:
print(re.findall("caa[^,a]", "caa^bcabcaabc"))
輸出:
['caa^', 'caab']
(2)^
^ 通常用來匹配行首,例如:
print(re.findall("^abca", "abcabcabc"))
輸出結果:
['abca']
(3) $
$ 通常用來匹配行為,例如:
print(re.findall("abc$", "accabcabc"))
輸出結果:
['abc']
(4)\
反斜杠后面可以加不同的字符表示不同的特殊含義,常見的有以下3種,
- \d:匹配任何十進制數等價于[0-9]
print(re.findall("c\d\d\da", "abc123abc"))
輸出結果為:
['c123a']
\可以轉義成普通字符,例如:
print(re.findall("\^abc", "^abc^abc"))
輸出結果:
['^abc', '^abc']
- s
匹配任何的空白字符例如:
print(re.findall("\s\s", "a c"))
輸出結果:
[' ', ' ']
- \w
匹配任何字母數字和下劃線,等價于[a-zA-Z0-9_],例如:
print(re.findall("\w\w\w", "abc12_"))
輸出:
['abc', '12_']
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/299795.html
標籤:Python
上一篇:學習Tomcat(一)之容器概覽
