首先,介紹下正規表示式,舉個例子:
r"(?<=)"
?<=前向匹配,匹配目標字串之前的內容(向前匹配但不取用)
?=後向匹配,其他參考上一句
?非貪婪匹配,即匹配到第一符合的
不加?為貪婪匹配,會盡可能多的匹配
1import
re2 key = '''
]"}4
'''5 p1 = r"
\.0+(?=[^0])"#
這是我們寫的正規表示式規則
6 pattern1 = re.compile(p1) #
我們在編譯這段正規表示式
7print(pattern1.findall(key)) #
檢視下匹配到什麼
89 newkey = re.sub(p1, ""
, key)
10print("
原文本:
" +key)
11print("
新文字:
"+newkey)
另外還有re.search等方法
正規表示式上說:
. 匹配除換行符以外的任意字元
\d 匹配數字
\b 匹配單詞的開始或結束
^ 匹配字串的開始
$ 匹配字串的結束
\w 匹配字母或數字或下劃線或漢字 等價於 '[^a-za-z0-9_]'。
\w 能不能匹配漢字要視你的作業系統和你的應用環境而定
\s 匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。(待考證)
例2:
importreline = '
select toaccount,billid,deductitem,deductamt,sendresult,resultdesc,businessid,accountno,receivedtype,receivedtime from deduct.deductinstruction where businessid=@bid order by receivedtime desc
'pattern = re.compile(r'
(?<=\s)[^\s]+(?=\swhere)')
table_name =pattern.findall(line)
(table_name)
#結果為 pay.deductinstruction
#正則中 \s 匹配空格
參考:
python正規表示式re模組
嗯 看看就好 小白可能會坑人 有錯誤的話麻煩指出來謝謝 2018年3月15日13 54 11 re 模組 函式與方法的區別 如果是乙個函式,用類名去呼叫,如果是乙個方法,用物件去呼叫 1.compile函式 編 print n1 10 n import re pattern re.compile r...
Python 正規表示式 re模組
在python中,需要用到正規表示式時,就需要匯入re模組進行操作,們可以直接呼叫來實現正則匹配 普通字元 匹配自身 abcabc 匹配任意除換行符 n 外的字元 在dotall模式中也能匹配換行符 a.cabc 轉義字元,使後乙個字元改變原來的意思 a.c a c a.c a c 匹配前乙個字元0...
re模組 正規表示式 python
d 匹配數字 w 匹配字母或數字 s 匹配乙個空格 包括tab s 表示至少乙個空格 表示任意字元 包括零個 表示至少乙個字元 表示0個或1個字元 表示n個字元 表示n m個字元 可以匹配任意字元 a b 表示可以匹配a或b 行的開頭 d 表示必須以數字開頭 表示結尾 d 表示必須以數字結尾 r 字...