目標:
* 知道re模組的常用操作
* 會使用正則匹配單個、多個字元
基本語法
【重點】re模組常用操作
result = re.match(正規表示式,要匹配的字串)
# 如果上一步匹配到資料的話,可以使用group方法來提取資料
result.group() # group(下標索引) 0,1,2,3
import re
ret = re.search(r"\d+", "閱讀次數為 9999")
ret.group()
# 執行結果:
'9999'
import re
ret = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345")
print(ret)
# 執行結果:
['9999', '7890', '12345']
import re
ret = re.sub(r"\d+", '998', "python = 997")
print(ret)
# 執行結果
python = 998
# 支援函式的呼叫
def add(temp):
strnum = temp.group()
num = int(strnum) + 1
return str(num)
ret = re.sub(r"\d+", add, "python = 997")
print(ret)
ret = re.sub(r"\d+", add, "python = 99")
print(ret)
# 執行結果
python = 998
python = 100
r的作用:python中字串前面加上 r 表示原生字串
匹配單個字元
匹配多個字元
匹配分組
匹配開頭結尾
【面】python裡match與search的區別?
match()函式只檢測 re 是不是在 string 的開始位置匹配,
search()會掃瞄整個 string 查詢匹配;
也就是說 match()只有在 0 位置匹配成功的話才有返回,
如果不是開始位置匹配成功的話,match()就返回 none。
【面】用 python 匹配 html tag 的時候,<.> 和 <.> 有什麼區別?
<.>是貪婪匹配,會從第乙個「」中間所有的字元都會匹配到,中間可能會包含 「<>」。
<.>是非貪婪匹配,從第乙個「」結束匹配,這中間的字串都會匹配到,但是 不會有「<>」。
python re模組與正則
正規表示式中的轉義符在python的字串中也剛好有轉移的作用,但是正規表示式中的轉義符和字串中的轉義符並沒關係,且還容易有衝突。為了避免這種衝突,我們所有的正則都以在工具中的測試結果為結果,然後只需要在正則和待匹配的字串外面都加r即可 print n n print n n print r n n ...
Python re 正則模組
有些字元比較特殊,它們和自身並不匹配,而是會表明應和一些特殊的東西匹配,或者它們會影響到 re 其它部分的重複次數,它們叫元字元。其中 m 和 n 是十進位制整數。該限定符的意思是至少有 m 個重複,至多到 n 個重複。舉個例子,a b 將匹配 a b a b 和 a b 它不能匹配 ab 因為沒有...
Python re正則模組
對於比較複雜的字串處理任務,需要依靠正規表示式。首先需要匯入 re 模組 import re常用的元字元 符號含義 匹配除 n 和 r 之外的任何單個字元。匹配字串開始位置 匹配字串結束位置 前面的元素重複0次,1次或多次 前面的元素重複0次或1次 前面的元素重複1次或多次 前面的元素出現了n次 前...