# 匯入 re 模組
import re
# re.match() 根據正規表示式從頭開始匹配字串資料
result = re.match(
"itcast"
,"itcast.cn"
)# print 列印結果
print
(result.group())
# 執行結果為:
itcast
**功能.
匹配任意1個字元(除了\n)
[ ]匹配[ ]中列舉的字元, 比如[0-5]表示0,1,2,3,4,5
\d匹配數字,即0-9
\d匹配非數字,即不是數字
\s匹配空白,即 空格,tab鍵
\s匹配非空白
\w匹配非特殊字元,即a-z、a-z、0-9、_、漢字
\w匹配特殊字元,即非字母、非數字、非漢字
**功能
*匹配前乙個字元出現0次或者無限次,即可有可無
+匹配前乙個字元出現1次或者無限次,即至少有1次
?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有
匹配前乙個字元出現m次
匹配前乙個字元出現從m到n次
import re
match_obj = re.match("t.+o", "two")
if match_obj:
print(match_obj.group())
else:
print("匹配失敗")
執行結果:
two
print(match_obj.group())
**功能
^匹配字串開頭
$匹配字串結尾
import re
# 匹配以數字開頭的資料
match_obj = re.match("^\d.*", "3hello")
print(match_obj.group())
執行結果: 3hello
import re
# 匹配以數字結尾
match_obj = re.match(".*\d$", "xxsdf;kj;5")
print(match_obj.group())
**
功能| 管道符
匹配左右任意乙個表示式
(ab)
將括號中字元作為乙個分組
\num
引用分組num匹配到的字串
(?p)
給分組起別名
(?p=name)
引用別名為name分組匹配到的字串
import re
# 水果列表
fruit_list =[,
"banana"
,"orange"
,"pear"
]for value in fruit_list:
match_obj = re.match(
, value)
if match_obj:
(match_obj.group())
# print("%s是我想要的" % match_obj.group())
# else:
# print("%s不是我要的" % value)
>>
>
pear
需求:匹配出163、126、qq等郵箱
import re
match_obj = re.match("[a-za-z0-9_]@(163|126|qq|sina|yahoo)\.com", "[email protected]")
if match_obj:
print(match_obj.group())
# 獲取分組資料
print(match_obj.group(1))
else:
print("匹配失敗")
match_obj = re.match(r"<([a-za-z1-6]+)>.*", "hh")
if match_obj:
print(match_obj.group())
else:
print("匹配失敗")
#
# \num 引用分組num匹配到的字串
match_obj = re.match("<([a-za-z1-6]+)><([a-za-z1-6]+)>.*", "
")if match_obj:
print(match_obj.group())
else:
print("匹配失敗")
#需求:匹配出
#?p取名 , ?p=name呼叫
match_obj = re.match(
"<(?p[a-za-z1-6]+)><(?p[a-za-z1-6]+)>.*","
")if match_obj:
print
(match_obj.group())
else
:print
("匹配失敗"
)
需求:匹配出水果的個數
import re
# 1.pattern: 正規表示式
# 2.string: 要匹配的字串
match_obj = re.search("\d+", "水果有20個 其中蘋果10個")
if match_obj:
# 獲取匹配結果資料
print(match_obj.group())
else:
print("匹配失敗")
執行結果: 20
需求:匹配出多種水果的個數
import re
result = re.findall("\d+", "蘋果10個 鴨梨5個 總共15個水果")
print(result)
執行結果: ['10', '5', '15']
import re
# pattern: 正規表示式
# repl: 替換後的字串
# string: 要匹配的字串
# count=0 替換次數,預設全部替換 , count=1根據指定次數替換
# match_obj:該引數系統自動傳入
def add(match_obj):
# 獲取匹配結果的資料
value = match_obj.group()
result = int(value) + 1
# 返回值必須是字串型別
return str(result)
result = re.sub("\d+", add, "閱讀數:10")
print(result)
需求:切割字串"貂蟬,楊玉環:西施,王昭君"
import re
# 1. 正則
# 2. 要匹配的字串
# maxsplit=1 分割次數, 預設全部分割
result = re.split(",|:", my_str, maxsplit=1)
print(result)
執行結果: ['貂蟬', '楊玉環:西施,王昭君']
比如
match_obj = re.match(r"<([a-za-z1-6]+)>.*", "hh")
python中字串前面加上 r 表示原生字串(rawstring)
如果不使用r,默寫情況下匹配時候需要加上反斜槓
正規表示式 匹配規則
一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once這個模式包含乙個特殊的字元 表示該模式只匹配那些以once開頭的字串。例如該模式與字串 on...
正規表示式 匹配規則
一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once這個模式包含乙個特殊的字元 表示該模式只匹配那些以once開頭的字串。例如該模式與字串 on...
正規表示式教程 正規表示式匹配規則 6
正規表示式教程 正規表示式匹配規則 6 2007 05 11 08 28 基本模式匹配 一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once 這...