import re # 匯入re模
result = re.match(正規表示式, 要匹配的字串) # 使用match() 方法進行匹配操作
result.group( ) # 使用group()方法提取資料
案例 :
# 匹配變數名是否符合識別符號命名規則
res = re.match("[a-za-z_]+[\w]*","name_123")
print(res.group()) # 執行結果 : name_123
res = re.match("[a-za-z_]+[\w]*","name_123")
print(res.group()) # 執行結果 : name_123
# 匹配字串的開頭和結尾 (注意: python中match 預設從頭開始匹配,可以省略^)
res = re.match("[\w]@gmail\.com$", "[email protected]")
print(res.group()) # 執行結果: refrain_wg@g'mail.com
res = re.match("[\w]@gmail\.com$", "[email protected]")
print(res.group()) # 執行結果: refrain_wg@g'mail.com
案例 :
# | 的使用: 或
res = re.match("[1-9]?\d$|100","6")
print(res.group()) # 執行結果 : 6
# ( ) 的使用: 分組
res = re.match("\w@(163|qq|gmail)\.com", "[email protected]")
print(res.group()) # 執行結果 : [email protected]
# \ 的使用: 這裡 \1 代表引用分組1的正規表示式
res = re.match(r"\w*", "引用分組")
print(res.group()) # 執行結果: 引用分組
# 執行結果: 引用分組
案例:
res = re.search(r"\d+", "隨機數123-9999")
print(res.group()) # 執行結果為: 123
res = re.findall(r"\d+", "隨機數: 123, 007, 9999, 2018, 6, 16")
print(res) # 執行結果為 : ['123', '007', '9999', '2018', '6', '16']
# 執行結果為 : ['123', '007', '9999', '2018', '6', '16']
res = re.sub(r"\d+", '20180616', "學號:1205071")
print(res) # 執行結果為: 學號:20180616
res = re.split(r"-| ","隨機2018-06-16 2018-11-22文字")
print(res) # 執行結果為: ['隨機2018', '06', '16', '2018', '11', '22文字']
注意 : findall( ) , sub( ) , split( ) 的使用,不需要使用group( ) 提取資料
貪婪:python裡數量詞預設是貪婪的,總是嘗試匹配盡可能多的字元;
非貪婪 :和貪婪相反,總是嘗試匹配盡可能少的字元。
解決方案:在"*","?","+",""後面加上?,使貪婪變成非貪婪。
正規表示式 python re
字元功能 或 分組 num 引用分組num匹配到的字串 p 分組起別名 p name 引用別名為name分組匹配到的字串 示例import re label res re.match r w w label print res.group www.itcast.cn h1 html import r...
python re 正規表示式
1 re.match str id s paragraph.text re.match 表示從變數 paragraph.text 所代表的 字串 的開始匹配模式 str id s 模式 str id s 表示 以id 某個數字 開始,s 表示0個或者多個空白符。表示結尾。2 searchobj re...
Python re 正規表示式
a z代表匹配任意的小寫字母 s表示匹配任意的空白字元 就代表匹配前面的字元任意多個 w匹配字母 數字及下劃線 w匹配不是字母 數字及下劃線的字元 可以匹配任意字元 除換行符 可以匹配任意字元 貪婪 匹配 1 個或多個表示式 非貪婪 向它傳入要匹配的字串以及正規表示式,就可以檢測這個正規表示式是否匹...